Heim  >  Artikel  >  Backend-Entwicklung  >  php字符串替换问题

php字符串替换问题

WBOY
WBOYOriginal
2016-09-12 17:44:431202Durchsuche

preg_replace函数可以根据一个正则来匹配替换,而且可以指定次数,现在我有个需求是这样的,我想替换指定的匹配的第n次来替换,比如一个字符串,我写了一个正则,这个字符串总共能匹配出三处,然后我只想替换匹配出的第二次该怎么办?php有没有这样的实现?

回复内容:

preg_replace函数可以根据一个正则来匹配替换,而且可以指定次数,现在我有个需求是这样的,我想替换指定的匹配的第n次来替换,比如一个字符串,我写了一个正则,这个字符串总共能匹配出三处,然后我只想替换匹配出的第二次该怎么办?php有没有这样的实现?

使用preg_replace_callback
使用方法请参考手册

可以用preg_replace_callback来处理,他调用其他函数来处理替换,你可以自己处理替换的逻辑

直接上代码吧:

<code>$i=1;
$result = preg_replace_callback('/a/',function($match)use(&$i){
    $match = $i != 2 ? $match[0] : '';
    $i++;
    return $match;
},'a1a2a3a4');
var_dump($result);</code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn