猿问

使用 preg_replace 替换所有匹配项

下面的代码完美地工作:


$string = '(test1)';

$new = preg_replace('/^\(+.+\)+$/','word',$string);

echo $new;

输出:


word

如果代码是这样的:


$string = '(test1) (test2) (test3)';

如何生成输出: word word word?




茅侃侃
浏览 127回答 1
1回答

梦里花落0921

为什么我的正则表达式不起作用?^ and $ 是锚,这意味着匹配应.意味着匹配除换行符以外的任何内容,+意味着一个或多个,默认情况下正则表达式本质上是贪婪的,因此它尝试尽可能多地匹配我们想要匹配的地方,( )因此我们需要稍微更改模式您可以使用\([^)]+\)$string = '(test1) (test2) (test3)';$new = preg_replace('/\([^)]+\)/','word',$string);echo $new;
随时随地看视频慕课网APP
我要回答