regex 使用preg_replace仅替换第一个匹配项

n3schb8v  于 2023-06-25  发布在  其他
关注(0)|答案(3)|浏览(147)

我有一个字符串,其结构类似于:'aba aaa cba sbd dga gad aaa cbz'。字符串每次都可能有点不同,因为它来自外部源。
我只想替换第一次出现的'aaa',而不是其他的。这可能吗?

8ljdwjyq

8ljdwjyq1#

preg_replace的第四个可选参数是limit

preg_replace($search, $replace, $subject, 1);
m2xkgtsf

m2xkgtsf2#

您可以使用preg_replacelimit参数,并将其设置为1,以便最多发生一次替换:

$new = preg_replace('/aaa/','replacement',$input,1);
rqenqsqc

rqenqsqc3#

例如,out $content是:

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

相关问题