PHP:替换字符并生成异常(preg_replace)

时间:2010-09-21 09:01:09

标签: php preg-replace uppercase lowercase

我如何:

  • 使用preg_replace()替换单词中的字符但是make 如果他们是a的一部分的例外 某些字。
  • 用。替换大写字符 即使是大写替换 替换是小写和副 反之亦然。

示例:

$string = 'Newton, Einstein and Edison. end';  
echo preg_replace('/n/i', '<b>n</b>', $string); 

来自: n ewto n ,Ei n stei n a n d Ediso n 。 Ë名词 d
to: N ewto n ,Ei n stei n a n d Ediso < b>ñ的。端

在这种情况下,我希望替换所有n个字母,除非它们是单词end的一部分且Newton不应更改为newton

1 个答案:

答案 0 :(得分:1)

echo preg_replace('/((?<!\be)n|n(?!d\b))/i', '<b>\1</b>', $string);

它匹配任何字母'n',其前面没有[字边界+ e]或后面没有[d +字边界]。

一般情况:/((?<!\b$PREFIX)$LETTER|$LETTER(?!$SUFFIX\b))/i'