我在将preg_match_all中使用的某些正则表达式转换为在preg_replace中使用时遇到了一些困难。PHP正则表达式帮助(从preg_match_all转换为preg_replace)
基本上,只通过正则表达式,我想匹配大写字母,前面是空格,文本开头或者一个超文本。这不是一个问题,这个效果很好,我有以下:
preg_match_all('/(?<= |\A|-)[A-Z]/',$str,$results);
echo '<pre>' . print_r($results,true) . '</pre>';
现在,我想要做什么,就是用的preg_replace只与符合我条件的大写字符返回字符串以上。如果我将正则表达式直接移入preg_replace,那么它显然会替换我想保留的字符。
任何帮助,将不胜感激:)
此外,我充分意识到正则表达式是不是该在效率方面的最佳解决方案,但尽管如此,我想使用的preg_replace。
你可以简单地将你的正则表达式的否定变成preg_replace吗? – Ina 2012-04-25 20:05:59
@Ina你的意思是在正则表达式中增加一个(!)如果是这样,我试过了,但是因为后面的效果,效果不一样 – 2012-04-25 20:17:58