我希望我的正則表達式匹配?ver
和?v
,但不?version
正則表達式匹配的原話
這是我到目前爲止有:$parts = preg_split("(\b\?ver\b|\b\?v\b)", $src);
我覺得麻煩可能是我如何逃脫?
。
我希望我的正則表達式匹配?ver
和?v
,但不?version
正則表達式匹配的原話
這是我到目前爲止有:$parts = preg_split("(\b\?ver\b|\b\?v\b)", $src);
我覺得麻煩可能是我如何逃脫?
。
您的模式會嘗試匹配前面帶有單詞char的?
,由於沒有,因此您沒有匹配。
使用以下模式:
'/\?v(?:er)?\b/'
圖案的詳細資料:
\?
- 字面?
焦炭v(?:er)?
- v
或ver
\b
- 字邊界(即,在v
或ver
之後必須有非字字符(不是數字,字母或_
)或字符串的結尾。注意你不需要第一(初始)字的邊界,因爲它已經存在,一個?
(非字字符)和v
(字字符)之間。如果?
是可選的,那麼您需要一個字邊界。
你如何知道目標子串在行尾處終止?你的模式實際上可能是不正確的,但是直到OP提供了一些示例字符串,我們纔會知道。這不是Wiktor正確模式的問題。 – mickmackusa
OP確實提供了示例字符串 - 他說「我想讓我的正則表達式匹配'?ver'和'?v',但不是'?version'」。 –
然而,由於這是OP的意思,而且他們沒有很好地闡述它,所以我已經編輯了我的答案,因爲它不需要原始解決方案。感謝您指出了這一點! :) –
請添加兩個或三個示例輸入,以便將來的SO讀者可以看到您在上下文中提問的內容。 – mickmackusa
你稱之爲「確切的詞」不是很清楚,特別是因爲「?」不是一個單詞字符。你應該解釋一個詞的確切含義。 –
@mickmackusa:沒關係,一直都不清楚(幸運的是!)。 –