【发布时间】:2010-09-21 16:11:43
【问题描述】:
如何处理正则表达式中的特殊字符? @ ? # $ % %...
此模式搜索介于前缀和后缀之间的字母。
$pattern = '/((?<!\b$PREFIX)$LETTER|$LETTER(?!$SUFFIX\b))/i';
$string = 'end';
$prefix = 'e';
$letter = 'n';
$suffix = 'd';
但是如果$string 以# 开头呢
$string = '#end';
$prefix = ???
编辑:这是完整的 preg_replace
$text = "<p>Newton, Einsteing and Edison. #end</p>"
$pattern = '/((?<!\b$PREFIX)$LETTER|$LETTER(?!$SUFFIX\b))/i';
echo preg_replace($pattern, '<b>\1</b>', $text);
这会将所有n 字母替换为粗体n,但应该排除#end 中的n
【问题讨论】:
-
啊,
\b不起作用才是问题所在。
标签: php regex preg-replace special-characters