只用preg_replacereplace第一个匹配
我有一个类似于'aba aaa cba sbd dga gad aaa cbz'
。 每次来自外部来源的string都可能有点不同。
我只想replace第一个'aaa'
而不是其他的。 可能吗?
preg_replace的可选第四个参数是limit
:
preg_replace($search, $replace, $subject, 1);
您可以使用preg_replace
的limit
参数来设置它,并将其设置为1
以便至多进行一次replace:
$new = preg_replace('/aaa/','replacement',$input,1);
例如,出$内容是:
START FIRST AAA SECOND AAA
1)如果你使用:
$content = preg_replace('/START(.*)AAA/', 'REPLACED_STRING', $content);
它会改变从开始到最后一个AAA的一切,你的结果将是:
REPLACED_STRING
2)如果你使用:
$content = preg_replace('/START(.*?)AAA/', 'REPLACED_STRING', $content);
你的结果将如下所示:
REPLACED_STRING SECOND AAA