如何用Regex / PHP / preg_replace替换所有匹配项

时间:2016-05-13 07:33:32

标签: php regex

基本上我想替换所有单词,例如:测试 someword bleble

问题是我使用的正则表达式只替换了其中一个单词,第一个是找到的单词。任何人都可以帮我这个吗?

$string = 'http://nu/style/test/someword/bleble';
preg_replace('/(test|someword|bleble)/','',$string);

最诚挚的问候, Mateusz

2 个答案:

答案 0 :(得分:2)

您可以使用数组来解决问题。

$string  = "http://nu/style/test/someword/bleble";
$remove = array("/test/", "someword/", "bleble");

$result = str_replace($remove, ' ', $string);

答案 1 :(得分:1)

您可以使用array()作为模式。您需要一个阵列用于替换模式,另一个阵列可以替换。

$string = 'http://nu/style/test/someword/bleble';
$patterns = array(
  "/test/",
  "/someword/",
  "/bleble/"
);

$replacements = array(
  "",
  "",
  ""
);

preg_replace($patterns, $replacements, $string);

当然,如果您想用同一个词替换所有$patterns,您可以使用:

preg_replace($patterns, " ", $string);
  

输出: http://nu/style///