The preg_replace function can be used to match and replace a regular expression, and can specify the number of times. now I have a requirement. I want to replace the specified match with the nth time, for example, a string, I wrote a regular expression. this string can match three places in total, and I just want to replace the matching... the preg_replace function can be used to match and replace a regular expression, and can specify the number of times. now I have a requirement. I want to replace the specified match with the nth time, for example, a string, I wrote a regular expression. this string can be matched in three places in total. then I just want to replace the matched second time. what should I do? Is php implemented like this?
Reply content:
The preg_replace function can be used to match and replace a regular expression, and can specify the number of times. now I have a requirement. I want to replace the specified match with the nth time, for example, a string, I wrote a regular expression. this string can be matched in three places in total. then I just want to replace the matched second time. what should I do? Is php implemented like this?
Use preg_replace_callback
For instructions, see the manual.
AvailablePreg_replace_callbackIt calls other functions to process Replacement. you can process the replacement logic by yourself.
Go directly to the code:
$ I = 1; $ result = preg_replace_callback ('/a/', function ($ match) use (& $ I) {$ match = $ I! = 2? $ Match [0]: ''; $ I ++; return $ match ;}, 'a1a2a3a4 '); var_dump ($ result );