Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Replace only first match using preg_replace [duplicate]

I have a string with structure similar to: 'aba aaa cba sbd dga gad aaa cbz'. The string can be a bit different each time as it's from an external source.

I would like to replace only first occurrence of 'aaa' but not the others. Is it possible?

like image 604
deadbeef Avatar asked Jul 18 '11 07:07

deadbeef


2 Answers

The optional fourth parameter of preg_replace is limit:

preg_replace($search, $replace, $subject, 1); 
like image 178
Paul Avatar answered Sep 19 '22 03:09

Paul


You can use the limit argument of preg_replace for this and set it to 1 so that at most one replacement happens:

$new = preg_replace('/aaa/','replacement',$input,1); 
like image 43
codaddict Avatar answered Sep 21 '22 03:09

codaddict