我在PHP中有以下正则表达式:
'/\|*([\w\s]*' . $searchTerm . '[\w\s]*)\|*/iu'
让我们假设以下searchTerm:
故事
如何实现正则表达式与具有双引号的字符串匹配,例如:
关于" Neverland"
的故事
我目前的正则表达式仅匹配双引号开始。如何用我的正则表达式覆盖整个字符串,考虑双引号?
答案 0 :(得分:0)
使用
'/\|*([\w\s\'"]*' . preg_quote($searchTerm, "/") . '[\w\s\'"]*)\|*/iu'
只需添加双引号和转义单引号(因为您使用单引号文字来声明正则表达式)到字符类[...]
,并且不要忘记转义$searchTerm
内容使用preg_quote
,因为它们可能包含?
或+
等字符,这些字符在正则表达式模式中具有特殊含义。 preg_quote
中的第二个参数也将转义/
符号,因为它在您的代码中用作正则表达式分隔符。