正则表达式:如何考虑双引号

时间:2016-01-27 09:04:23

标签: php regex

我在PHP中有以下正则表达式:

'/\|*([\w\s]*' . $searchTerm . '[\w\s]*)\|*/iu'

让我们假设以下searchTerm:

  

故事

如何实现正则表达式与具有双引号的字符串匹配,例如:

  

关于" Neverland"

的故事

我目前的正则表达式仅匹配双引号开始。如何用我的正则表达式覆盖整个字符串,考虑双引号?

1 个答案:

答案 0 :(得分:0)

使用

'/\|*([\w\s\'"]*' . preg_quote($searchTerm, "/") . '[\w\s\'"]*)\|*/iu'

只需添加双引号和转义单引号(因为您使用单引号文字来声明正则表达式)到字符类[...],并且不要忘记转义$searchTerm内容使用preg_quote,因为它们可能包含?+等字符,这些字符在正则表达式模式中具有特殊含义。 preg_quote中的第二个参数也将转义/符号,因为它在您的代码中用作正则表达式分隔符。