在此正則表達式我想知道\-?
什麼是( - 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