我对PHP的正则表达式不太熟悉
在使用eregi_replace()函数时发现带有()的字符串不能进行替换,比如
将 DIN 1693(Pt.2)-1997 加粗
使用
$str='din 1693(Pt.2)-1997'
eregi_replace($str,"
1<strong>".$str."</strong>
",$str);
最后因为字符串中含有括号而无法处理
---------------------------------------------------------------
字符串的搜索替换可以用
preg_replace(),ereg_replace(),eregi_replace()
其中eregi_replace()在替换时不区分大小写
如果字符串中有特殊字符则可以使用转义
quotemeta
preg_quote
如果是ereg函数组用quotemeta
如果是preg函数组用preg_quote
比如加粗文字 'din 1693(Pt.2)-1997'
$str='din 1693(Pt.2)-1997';
echo preg_replace("/(".preg_quote($str).")/","
1<strong>\\\1</strong>
",$str);
\\1就是引用找到的部份,这样可保留原来大小写.
如果用ereg或eregi的话,将preg_quote()改成quotemeta()就可以了