Подтвердить что ты не робот

Заменить только первое совпадение, используя preg_replace

У меня есть строка со структурой, похожей на: 'aba aaa cba sbd dga gad aaa cbz'. Строка может быть немного различной каждый раз, поскольку она связана с внешним источником.

Я хотел бы заменить только первое появление 'aaa', но не других. Возможно ли это?

4b9b3361

Ответ 1

Необязательный четвертый параметр preg_replace - limit:

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

Ответ 2

Вы можете использовать аргумент limit preg_replace для этого и установить его на 1, чтобы произошло не более одной замены:

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

Ответ 3

например, из $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