Заменить только первое совпадение с помощью preg replace [дубликат]
На этот вопрос уже есть ответ здесь:
У меня есть строка со структурой, подобной: 'aba aaa cba sbd dga gad aaa cbz'
. Строка может быть немного другой каждый раз, так как она из внешнего источника.
'aaa'
, но не остальные. Возможно ли это?3 ответа:
Необязательный четвертый параметр preg_replace равен
limit
:preg_replace($search, $replace, $subject, 1);
Для этого можно использовать аргумент
limit
preg_replace
и установить его в1
таким образом, чтобы произошло не более одной замены:$new = preg_replace('/aaa/','replacement',$input,1);
Например, out $content-это:
START FIRST AAA SECOND AAA
1) Если вы используете:
$content = preg_replace('/START(.*)AAA/', 'REPLACED_STRING', $content);
Это изменит все от начала до последнего ААА, и ваш результат будет:
REPLACED_STRING
2) Если вы используете:
$content = preg_replace('/START(.*?)AAA/', 'REPLACED_STRING', $content);
Ваш результат будет таким:
REPLACED_STRING SECOND AAA