Heim  >  Artikel  >  Backend-Entwicklung  >  Problem beim Ersetzen von PHP-Strings

Problem beim Ersetzen von PHP-Strings

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

Die preg_replace-Funktion kann gemäß einem regulären Ausdruck übereinstimmen und ersetzen, und die Anzahl der Male kann angegeben werden. Jetzt habe ich eine Anforderung wie diese: Ich möchte das n-te Mal der angegebenen Übereinstimmung ersetzen, z. Ich habe einen regulären Ausdruck geschrieben, dieser String kann mit insgesamt drei Stellen übereinstimmen, und dann möchte ich nur die zweite Übereinstimmung ersetzen. Was soll ich tun? Gibt es eine solche Implementierung in PHP?

Antwortinhalt:

Die preg_replace-Funktion kann gemäß einem regulären Ausdruck übereinstimmen und ersetzen, und die Anzahl der Male kann angegeben werden. Jetzt habe ich eine Anforderung wie diese: Ich möchte das n-te Mal der angegebenen Übereinstimmung ersetzen, z. Ich habe einen regulären Ausdruck geschrieben, dieser String kann insgesamt dreimal übereinstimmen, und dann möchte ich nur den zweiten Treffer ersetzen. Was soll ich tun? Gibt es eine solche Implementierung in PHP?

Verwenden Sie preg_replace_callback
Informationen zur Verwendung finden Sie im Handbuch

kann mit preg_replace_callback verarbeitet werden, wodurch andere Funktionen zum Ersetzen aufgerufen werden. Sie können die Ersetzungslogik selbst verwalten

Gehen Sie einfach zum Code:

<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