0
我在PHP以下的正則表達式:正則表達式:如何考慮雙引號
'/\|*([\w\s]*' . $searchTerm . '[\w\s]*)\|*/iu'
假設以下SEARCHTERM:
故事
如何實現的正則表達式會匹配一個雙引號的字符串,如:
有關「Neverland」的故事
我目前的正則表達式僅匹配到雙引號開始。我如何用我的正則表達式覆蓋整個字符串,並將雙引號考慮在內?
我在PHP以下的正則表達式:正則表達式:如何考慮雙引號
'/\|*([\w\s]*' . $searchTerm . '[\w\s]*)\|*/iu'
假設以下SEARCHTERM:
故事
如何實現的正則表達式會匹配一個雙引號的字符串,如:
有關「Neverland」的故事
我目前的正則表達式僅匹配到雙引號開始。我如何用我的正則表達式覆蓋整個字符串,並將雙引號考慮在內?
使用
'/\|*([\w\s\'"]*' . preg_quote($searchTerm, "/") . '[\w\s\'"]*)\|*/iu'
只需添加雙引號和轉義的單引號(因爲你使用的是單引號的文字申報正則表達式)的字符類[...]
,不要忘記逃跑的$searchTerm
內容爲preg_quote
,因爲它們可能包含?
或+
等字符,這些字符在正則表達式中具有特殊含義。 preg_quote
中的第二個參數也將轉義/
符號,因爲它在代碼中用作正則表達式分隔符。
很高興爲你效勞。如果我的回答對你有幫助,也請考慮積極投票。 –
嘗試將它添加到正則表達式:''/ \ | *([\ w \ s「] *'。$ searchTerm。'[\ w \ s」] *)\ | */iu'' –
也不要如果輸入是任意的,則不要忘記使用'preg_quote()'。 – HamZa
謝謝你,Wiktor。我的最終正則表達式是:'/ \ | *([\ w \ s''] *'。$ searchTerm。'[\ w \ s''] *)\ | */iu'包含雙引號和單引號之後'。我如何逃避單引號,以便我的PHP的作品? – Max