在此正则表达式我想知道\-?
什么是( - 2 | 3?)的含义在正则表达式
\b((m)(\-?2|3))
我得到以下输出含义:
Array
(
[0] => m2
[1] => m2
[2] => m
[3] => 2
)
在此正则表达式我想知道\-?
什么是( - 2 | 3?)的含义在正则表达式
\b((m)(\-?2|3))
我得到以下输出含义:
Array
(
[0] => m2
[1] => m2
[2] => m
[3] => 2
)
你没有说输入字符串是什么。 \-?
表示数字前可能有“ - ”符号。 “?”是"zero or one"
,"-"
需要逃脱"\"
,因为它在正则表达式中有特殊的含义。所以你的正则表达式将匹配"m2"
,但也是"m-2"
。
'-'在正则表达式中没有特殊含义,它位于角色类中的某些位置,或者是模式修饰符快捷键的一部分,这两种情况都不是这种情况。 –
@TimPietzcker你说得对。但还是有人逃脱它,以防万一:)。 –
斜杠用于表示范围,所以它与转义序列一起使用。它是正确的 – user3064914
这只是使连字符在2之前是可选的,也不需要转义,因此您可以使用:'\ b((m)( - ?2 | 3))' – anubhava