【发布时间】:2011-10-07 11:12:09
【问题描述】:
我有一个结构类似于:'aba aaa cba sbd dga gad aaa cbz' 的字符串。由于来自外部来源,因此每次字符串可能会有所不同。
我只想替换第一次出现的'aaa' 而不是其他的。有可能吗?
【问题讨论】:
标签: php regex preg-replace
我有一个结构类似于:'aba aaa cba sbd dga gad aaa cbz' 的字符串。由于来自外部来源,因此每次字符串可能会有所不同。
我只想替换第一次出现的'aaa' 而不是其他的。有可能吗?
【问题讨论】:
标签: php regex preg-replace
您可以为此使用preg_replace 的limit 参数并将其设置为1,以便最多发生一次替换:
$new = preg_replace('/aaa/','replacement',$input,1);
【讨论】:
preg_replace可选的第四个参数是limit:
preg_replace($search, $replace, $subject, 1);
【讨论】:
例如,out $content 是:
START
FIRST AAA
SECOND AAA
1) 如果你使用:
$content = preg_replace('/START(.*)AAA/', 'REPLACED_STRING', $content);
它将改变从 START 到最后一个 AAA 的所有内容,您的结果将是:
REPLACED_STRING
2) 如果你使用:
$content = preg_replace('/START(.*?)AAA/', 'REPLACED_STRING', $content);
你的结果会是这样的:
REPLACED_STRING
SECOND AAA
【讨论】: