具有多个值的preg_replace

时间:2012-11-29 08:48:08

标签: php regex

我有一个名为$my_replacements的多个值的数组。

我有一个名为$my_string的字符串。

我希望能够迭代$ my_replacements并在$ my_string上执行preg_replace,所以现在我有了这个:

foreach($my_replacements as $replacement) {
    preg_replace($replacement, '', $my_string);
}

这样可以正常工作,但是我希望在对$ my_string进行替换时停止循环,当发生这种情况时,我想获取这个新的$ my_string的值,并将值替换掉。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

在替换之前,您需要将结果与字符串进行比较:

foreach($my_replacements as $replacement) {
     $new_string = preg_replace($replacement, '', $my_string);
     if($new_string !== $my_string) {
         break;
     }
}

From the docs

  

如果找到匹配项,将返回新主题,否则主题将保持不变或如果发生错误则为NULL。

如果不是这种情况,我们会中断,即退出循环。