Detaillierte Erklärung häufig verwendeter regulärer Ausdrucksfunktionen in PHP

小云云
Freigeben: 2023-03-22 09:44:01
Original
1663 Leute haben es durchsucht

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)
Nach dem Login kopieren

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 = &#39;/[0-9]/&#39;;  
$subject = &#39;weuyr3ui76as83s0ck9&#39;;  
$m1 = $m2 = array();  
preg_match($pattern,$subject,$m1);  
preg_match_all($pattern,$subject,$m2);  
show($m1);  
echo &#39;<hr>&#39;;  
show($m2);  
function show($var = null){  
    if(empty($var)){  
        echo &#39;null&#39;;  
    }  
    else if(is_array($var)||is_object($var)){  
        //array,object  
        echo &#39;<pre class="brush:php;toolbar:false">&#39;;  
        print_r($var);  
        echo &#39;
'; } else{ //string ,int ,float... echo $var; } } ?>
Nach dem Login kopieren


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)
Nach dem Login kopieren

Lassen Sie uns ein Beispiel geben:

<?php  
//preg_filter() preg_replace()  
$pattern = &#39;/[0-9]/&#39;;  
$subject =&#39;weuyr3ui76as83s0ck9&#39;;  
$replacement = &#39;球宝宝&#39;;  
$str1 = preg_replace($pattern,$replacement,$subject);  
$str2 = preg_filter($pattern,$replacement,$subject);  
show($str1);  
echo &#39;<hr>&#39;;  
show($str2);  
function show($var = null){  
    if(empty($var)){  
        echo &#39;null&#39;;  
    }  
    else if(is_array($var)||is_object($var)){  
        //array,object  
        echo &#39;<pre class="brush:php;toolbar:false">&#39;;  
        print_r($var);  
        echo &#39;
'; } else{ //string ,int ,float... echo $var; } } ?>
Nach dem Login kopieren

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 = &#39;/[0-9]/&#39;  
$pattern = array(&#39;/[0-3]/&#39;,&#39;/[4-6]/&#39;,&#39;/[7-9]/&#39;);  
$subject =&#39;weuyr3ui76as83s0ck9&#39;;  
//$replacement = &#39;球宝宝&#39;;  
$replacement = array(&#39;球&#39;,&#39;宝&#39;,&#39;宝&#39;);  
$str1 = preg_replace($pattern,$replacement,$subject);  
$str2 = preg_filter($pattern,$replacement,$subject);  
show($str1);  
echo &#39;<hr>&#39;;  
show($str2);  
function show($var = null){  
    if(empty($var)){  
        echo &#39;null&#39;;  
    }  
    else if(is_array($var)||is_object($var)){  
        //array,object  
        echo &#39;<pre class="brush:php;toolbar:false">&#39;;  
        print_r($var);  
        echo &#39;
'; } else{ //string ,int ,float... echo $var; } } ?>
Nach dem Login kopieren

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 = &#39;/[0-9]/&#39;  
$pattern = array(&#39;/[0-3]/&#39;,&#39;/[4-6]/&#39;,&#39;/[7-9]/&#39;);  
//$subject =&#39;weuyr3ui76as83s0ck9&#39;;  
$subject = array(&#39;weuy&#39;,&#39;r3ui&#39;,&#39;76as83&#39;,&#39;s&#39;,&#39;0ck9&#39;);  
//$replacement = &#39;球宝宝&#39;;  
$replacement = array(&#39;球&#39;,&#39;宝&#39;,&#39;宝&#39;);  
  
$str1 = preg_replace($pattern,$replacement,$subject);  
$str2 = preg_filter($pattern,$replacement,$subject);  
  
show($str1);  
echo &#39;<hr>&#39;;  
show($str2);  
  
function show($var = null){  
    if(empty($var)){  
        echo &#39;null&#39;;  
    }  
    else if(is_array($var)||is_object($var)){  
        //array,object  
        echo &#39;<pre class="brush:php;toolbar:false">&#39;;  
        print_r($var);  
        echo &#39;
'; } else{ //string ,int ,float... echo $var; } } ?>
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage