Замените только первое совпадение с помощью preg replace [дублировать]
На этот вопрос уже есть ответ здесь:
У меня есть строка со структурой, подобной: 'aba aaa cba sbd dga gad aaa cbz'
. Строка может каждый раз немного отличаться, так как она из внешнего источника.
Я хотел бы заменить только первое вхождение 'aaa'
, но не остальные. Это возможно?
48
Author: DreadPirateShawn, 2011-07-18
3 answers
Необязательный четвертый параметр preg_replace является limit
:
preg_replace($search, $replace, $subject, 1);
90
Author: Paulpro, 2012-06-30 02:23:22
Для этого вы можете использовать аргумент limit
preg_replace
и установить его в 1
, чтобы произошло не более одной замены:
$new = preg_replace('/aaa/','replacement',$input,1);
9
Author: codaddict, 2011-07-18 07:19:40
Например, содержимое out $ выглядит следующим образом:
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
-1
Author: solution fix, 2013-03-27 11:15:39