我有一个字符串,结构类似于:'aba aaa cba sbd dga gad aaa cbz'
。由于它来自外部来源,每次字符串可能会有所不同。
我想仅替换第一次出现的'aaa'
,而不是所有的。这是否可能?
我有一个字符串,结构类似于:'aba aaa cba sbd dga gad aaa cbz'
。由于它来自外部来源,每次字符串可能会有所不同。
我想仅替换第一次出现的'aaa'
,而不是所有的。这是否可能?
您可以使用preg_replace
的limit
参数,并将其设置为1
,以便最多只进行一次替换:
$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
preg_replace('~.*\Kaaa~s', $replace, $subject, 1);
。请注意,对于这种情况,第四个参数是不需要的。 - Casimir et Hippolyte