1

我有以下正则表达式,它适用于针对数组的正常字符串匹配,

preg_grep( "/^". $name . "$/i", $values);

但是,它不适用于具有“娱乐(常规)”等特殊字符的字符串。

找到一个相关的线程,但是它用于 java 脚本,也没有帮助。

4

1 回答 1

5

使用该preg_quote函数转义字符串中可能存在的任何特殊字符:

preg_grep( "/^". preg_quote($name, '/') . "$/i", $values);

文档中:

preg_quote()在作为正则表达式语法一部分的每个字符前面放置一个反斜杠。如果您有一个需要在某些文本中匹配的运行时字符串并且该字符串可能包含特殊的正则表达式字符,这将非常有用。

于 2012-12-15T15:56:54.600 回答