我查看了this question,其中显示了需要转义哪些字符。但是,我在构造正则表达式方面遇到了很多麻烦,该正则表达式将匹配字符串中其中一个字符的任何实例。
对于这个问题的一些背景知识,我实现了一个简单的逐字逐句(或者如果你愿意,可以用术语)翻译数据库,用户输入语言对,然后可以触发翻译文本。用户输入"是/否"等字符串时会出现问题。所以,在PHP中,我需要转义要匹配的字符串,并将其放置如下:
"/\b".$target."\b/"
那么,我需要在preg_replace方面看一下什么呢?
答案 0 :(得分:4)
您想使用preg_quote()
。正如文件明确指出:
preg_quote()
接受str并在作为正则表达式语法一部分的每个字符前放置一个反斜杠。如果您有一个需要在某些文本中匹配的运行时字符串,并且该字符串可能包含特殊的正则表达式字符,这将非常有用。
或\Q
... \E
,(\Q
和\E
之间的内容被视为普通字符,而不是正则表达式字符。)