1

我如何:

  • 替换单词中的字符 usingpreg_replace()但如果它们是某个单词的一部分则例外。
  • 用大写替换替换大写字符,即使替换是小写,反之亦然。

例子:

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

来自:newto n,Ein stein and d Edison _ _ 转至牛顿、艾因斯坦爱迪生。_ _ _ _ _ _ _ _ 结尾

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

4

1 回答 1

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

它匹配任何前面没有 [word boundary + e] 或后面没有 [d + word boundary] 的字母“n”。

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

于 2010-09-21T09:16:39.430 回答