在php中替换重叠的字符串

时间:2015-04-13 06:29:49

标签: php

我需要用长串替换大量的单词和短语,单词和短语可能会重复多次。

我已经成功构建了一个preg_replace()数组,它的效果非常好。唯一的问题是我想要替换的单词和短语列表是重叠的,例如:

  

"酸" ---> " replacement1"

     

"轻酸" - > " replacement2"

它让preg_replace抱怨,因为"酸"两者都存在,这并不奇怪。

问题:如何构建一个合适的函数来替换我的场景中的单词和短语?

1 个答案:

答案 0 :(得分:1)

按照长度预先排列替换模式并向下应用。这样,较长的字符串将首先被替换。因此,其中任何包含的子字符串都不能被其他更短的替换规则意外替换。