使用PHP的preg_replace替换除

时间:2016-04-20 18:08:52

标签: php

如何使用PHP的preg_replace替换文本中所有出现的字符串,除了那些在html的A标签内找到的字符串,即:rest

例如,我想将单词 color 替换为 blue

**Original text**:
    Tim's favorite color is color.
    Color is also Bill's favorite.
**Converted text**:
    Tim's favorite color is blue.
    Blue is also Bill's favorite.

1 个答案:

答案 0 :(得分:0)

我想这里最好的方法是用指定的单词替换该单词的所有实例。然后你应该用原始单词

替换A标签内的文本

所以使用你的例子:

**Original text**:
    Tim's favorite [color] is color.
    Color is also Bill's favorite.

**Interim step text**:
    Tim's favorite [blue] is blue.
    Blue is also Bill's favorite.

**Converted text**:
    Tim's favorite [color] is blue.
    Blue is also Bill's favorite.

使用此方法会遇到的问题是:

  1. 具有上下文感知功能,因此您可以将第二个发送中的替换单词大写。 (你对这个问题的描述没有涵盖那个,但是这个例子确实如此)
  2. 通过正则表达式识别所有链接,无论结构如何
  3. 因此我没有包含任何代码,但我希望这能让你走上正轨。