我如何:
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
答案 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'