Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung häufig verwendeter regulärer Ausdrucksfunktionen in PHP

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

小云云
小云云Original
2018-03-26 10:12:591604Durchsuche

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 = &#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; } } ?>


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 = &#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; } } ?>

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; } } ?>

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:

a974b541f0baaa3fbdc2e2536727118c';  
show($str2);  
  
function show($var = null){  
    if(empty($var)){  
        echo 'null';  
    }  
    else if(is_array($var)||is_object($var)){  
        //array,object  
        echo 'e03b848252eb9375d56be284e690e873';  
        print_r($var);  
        echo 'bc5574f69a0cba105bc93bd3dc13c4ec';  
    }  
    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!

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