我正在循环使用preg_replace替换的单词列表。这是我正在使用的代码:
foreach ( $words->Reserved as $reserved )
$code = preg_replace( ( '/\b(' . $reserved . ')\b/' ), ( '<cs_reserved>' . $reserved . '</cs_reserved>' ), $code );
上面使用的表达式非常有效,除非$reserved
包含#
符号。我尝试使用括号(如上所示),但没有帮助。
我不是很擅长正则表达式,所以上面的内容可能并不理想,但它完全符合我的项目需要做的事情。
任何帮助将不胜感激。 :)
答案 0 :(得分:3)
使用preg_quote
$code = preg_replace( ( '/\b(' . preg_quote($reserved) . ')\b/' ), ( '<cs_reserved>' . $reserved . '</cs_reserved>' ), $code );