Dieser Artikel gibt Ihnen hauptsächlich eine detaillierte Erklärung häufig verwendeter regulärer Ausdrucksfunktionen in PHP. Ich hoffe, er kann Ihnen helfen.
Anweisung: $pattern=regulärer Ausdruck, $subject=Zieldaten
1.preg_match() und preg_match_all()
preg_match($pattern,$subject,[array &$matches]) preg_match_all($pattern,$subject,array &$matches)
preg_match stimmt nur einmal überein, preg_match_all gleicht alle übereinstimmenden Zeichenfolgen ab und platziert sie im Übereinstimmungsarray. Beide Funktionen haben einen ganzzahligen Rückgabewert.
gibt die Anzahl der Übereinstimmungen des Ergebnisses zurück;
Über den Rückgabewert der Funktion können wir auch die Anzahl der Schlüssel-Wert-Paare in Übereinstimmungen ermitteln.
Lassen Sie uns ein Beispiel geben, um es zu erleben:
<?php //preg_match ,preg_match_all $pattern = '/[0-9]/'; $subject = 'weuyr3ui76as83s0ck9'; $m1 = $m2 = array(); preg_match($pattern,$subject,$m1); preg_match_all($pattern,$subject,$m2); show($m1); echo '<hr>'; show($m2); function show($var = null){ if(empty($var)){ echo 'null'; } else if(is_array($var)||is_object($var)){ //array,object echo '<pre class="brush:php;toolbar:false">'; print_r($var); echo ''; } else{ //string ,int ,float... echo $var; } } ?>
Der obige Code dient dazu, die Zahl in der Zeichenfolge weuyr3ui76as83s0ck9 zu finden.
2. preg_replace() und preg_filter()
preg_replace($pattern,$replacemenrt,$subject) preg_filter($pattern,$replacement,$subject)
Lassen Sie uns ein Beispiel geben:
<?php //preg_filter() preg_replace() $pattern = '/[0-9]/'; $subject ='weuyr3ui76as83s0ck9'; $replacement = '球宝宝'; $str1 = preg_replace($pattern,$replacement,$subject); $str2 = preg_filter($pattern,$replacement,$subject); show($str1); echo '<hr>'; show($str2); function show($var = null){ if(empty($var)){ echo 'null'; } else if(is_array($var)||is_object($var)){ //array,object echo '<pre class="brush:php;toolbar:false">'; print_r($var); echo ''; } else{ //string ,int ,float... echo $var; } } ?>
In preg_replacement() können nicht nur Zeichenketten verwendet werden oder Arrays können ebenfalls verwendet werden.
Benötigt wird nur: $pattern = array('/[0-3]/','[4-6]','[7-9]');
$replacement = array('ball','bao','bao');
Dies bedeutet, dass bei Übereinstimmung mit einer Zahl von 0 bis 3 stattdessen „Ball“ verwendet wird, wenn sie mit 4 bis 6 übereinstimmt eine bestimmte Zahl in , verwenden Sie stattdessen „宝“; wenn Sie eine bestimmte Zahl in 7-9 finden, verwenden Sie stattdessen „宝“.
Zum Beispiel:
<?php //preg_filter() preg_replace() //$pattern = '/[0-9]/' $pattern = array('/[0-3]/','/[4-6]/','/[7-9]/'); $subject ='weuyr3ui76as83s0ck9'; //$replacement = '球宝宝'; $replacement = array('球','宝','宝'); $str1 = preg_replace($pattern,$replacement,$subject); $str2 = preg_filter($pattern,$replacement,$subject); show($str1); echo '<hr>'; show($str2); function show($var = null){ if(empty($var)){ echo 'null'; } else if(is_array($var)||is_object($var)){ //array,object echo '<pre class="brush:php;toolbar:false">'; print_r($var); echo ''; } else{ //string ,int ,float... echo $var; } } ?>
Da die Ergebnisse von preg_filter() und preg_replacement() in den beiden obigen Beispielen gleich sind, was ist der Unterschied zwischen ihnen?
Wenn wir $subject = array('weuy','r3ui','76as83','s','0ck9'); hinzufügen, wird der Unterschied zwischen ihnen angezeigt:
<?php //preg_filter() preg_replace() //$pattern = '/[0-9]/' $pattern = array('/[0-3]/','/[4-6]/','/[7-9]/'); //$subject ='weuyr3ui76as83s0ck9'; $subject = array('weuy','r3ui','76as83','s','0ck9'); //$replacement = '球宝宝'; $replacement = array('球','宝','宝'); $str1 = preg_replace($pattern,$replacement,$subject); $str2 = preg_filter($pattern,$replacement,$subject); show($str1); echo '<hr>'; show($str2); function show($var = null){ if(empty($var)){ echo 'null'; } else if(is_array($var)||is_object($var)){ //array,object echo '<pre class="brush:php;toolbar:false">'; print_r($var); echo ''; } else{ //string ,int ,float... echo $var; } } ?>
Wie oben zu sehen ist:
Die Funktion preg_replacement() wird angezeigt, unabhängig davon, ob ersetzte Wörter vorhanden sind, aber die Funktion preg_filter() wird nicht angezeigt, wenn keine ersetzten Wörter vorhanden sind. von.
Verwandte Empfehlungen:
Teilen regulärer PHP-Ausdrücke
Häufig verwendete Beispiele für reguläre Ausdrücke_regulärer Ausdruck
Zusammenfassung der regulären PHP-Ausdrücke
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung häufig verwendeter regulärer Ausdrucksfunktionen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!