Heim >Backend-Entwicklung >PHP-Tutorial >php: Vergleich der Verwendungsbeispiele von preg_match und preg_match_all
Anwendung regulärer Ausdrücke in PHP
In PHP-Anwendungen werden reguläre Ausdrücke hauptsächlich verwendet für:
• Reguläres Matching : Passen Sie den entsprechenden Inhalt gemäß dem regulären Ausdruck
an. • Reguläre Ersetzung: Passen Sie den Inhalt gemäß dem regulären Ausdruck an und ersetzen Sie
. • Reguläre Aufteilung: Teilen Sie die Zeichenfolge gemäß dem regulären Ausdruck
Es gibt zwei Arten von regulären Ausdrucksfunktionen in PHP: eine ist die Perl-kompatible reguläre Ausdrucksfunktion und die andere ist die erweiterte POSIX-reguläre Ausdrucksfunktion. Es gibt keinen großen Unterschied zwischen den beiden und es wird empfohlen, Perl-kompatible reguläre Ausdrucksfunktionen zu verwenden. Daher werden im Folgenden Perl-kompatible reguläre Ausdrucksfunktionen als Beispiele verwendet.
Trennzeichen
Reguläre Ausdrucksfunktion im Perl-Kompatibilitätsmodus, der reguläre Ausdruck muss in das Trennzeichen geschrieben werden. Als Trennzeichen kann jedes Zeichen verwendet werden, das kein Buchstabe, keine Zahl oder kein Backslash () ist. Normalerweise verwenden wir / als Trennzeichen. Informationen zur spezifischen Verwendung finden Sie in den folgenden Beispielen.
Tipps
Obwohl reguläre Ausdrücke sehr leistungsfähig sind, sollten Sie versuchen, keine regulären Ausdrucksfunktionen zu verwenden, wenn dies mit normalen Zeichenfolgenverarbeitungsfunktionen möglich ist, da reguläre Ausdrücke für viele sehr ineffizient sind. Über gewöhnliche String-Verarbeitungsfunktionen.
preg_match()
Die Funktion preg_match() wird für den regulären Ausdrucksabgleich verwendet. Sie gibt erfolgreich 1 zurück, andernfalls gibt sie 0 zurück.
Syntax:
int preg_match( Zeichenfolgenmuster, Zeichenfolgensubjekt [, Array-Übereinstimmungen] )
Parameterbeschreibung:
Parameter | Beschreibung | ||||||||
---|---|---|---|---|---|---|---|---|---|
Muster | Regulärer Ausdruck | ||||||||
Betreff | Muss mit dem abgerufenen Objekt übereinstimmen | ||||||||
matches | Optional, Array
| tr>
Beispiel 1:
<?php if(preg_match("/php/i", "PHP is the web scripting language of choice.", $matches)){ print "A match was found:". $matches[0]; } else { print "A match was not found."; } ?>
Browserausgabe:
A match was found: PHP
In In diesem Beispiel wird PHP aufgrund der Verwendung des i-Modifikators im Text ohne Berücksichtigung der Groß- und Kleinschreibung abgeglichen.
Tipps
preg_match() beendet den Abgleich nach dem ersten erfolgreichen Abgleich. Wenn Sie alle Ergebnisse abgleichen möchten, d. h. bis zum Ende des Betreffs suchen, müssen Sie preg_match_all verwenden ()-Funktion.
Beispiel 2: Erhalten Sie den Hostdomänennamen von einer URL:
<?php // 从 URL 中取得主机名 preg_match("/^(http://)?([^/]+)/i","http://www.php.cn/index.html", $matches); $host = $matches[2]; // 从主机名中取得后面两段 preg_match("/[^./]+.[^./]+$/", $host, $matches); echo "域名为:{$matches[0]}"; ?>
Browserausgabe:
Der Domainname lautet: php.cn
preg_match_all()
Die Funktion preg_match_all() wird für den globalen Abgleich von regulären verwendet Ausdrücke Gibt an, wie oft das gesamte Muster bei Erfolg abgeglichen wurde (möglicherweise Null), oder FALSE bei Fehler.
Syntax:
int preg_match_all( Zeichenfolgenmuster, Zeichenfolgensubjekt, Array-Übereinstimmungen [, int Flags] )
Parameterbeschreibung:
参数 | 说明 |
---|---|
pattern | 正则表达式 |
subject | 需要匹配检索的对象 |
matches | 存储匹配结果的数组 |
flags |
可选,指定匹配结果放入 matches 中的顺序,可供选择的标记有:
|
PREG_SET_ORDER: Sortieren Sie die Ergebnisse Sei $matches[0] das Array des ersten Satzes von Übereinstimmungen, $matches[1] das Array des zweiten Satzes von Übereinstimmungen usw.
<?php $str = "<pre class="brush:php;toolbar:false">学习php是一件快乐的事。
所有的phper需要共同努力!"; $kw = "php"; preg_match_all('/
([sS]*?)/',$str,$mat); for($i=0;$i
Das folgende Beispiel zeigt die Anzeige aller Schlüsselwörter (php) in den e03b848252eb9375d56be284e690e873bc5574f69a0cba105bc93bd3dc13c4ec-Tags im Text in Rot.
Regulär übereinstimmende chinesische Zeichen Regulär übereinstimmende chinesische Zeichen unterscheiden sich geringfügig je nach Seitenkodierung:
<?php $str = "学习php是一件快乐的事。"; preg_match_all("/[x80-xff]+/", $str, $match); //UTF-8 使用: //preg_match_all("/[x{4e00}-x{9fa5}]+/u", $str, $match); print_r($match); ?>•GBK/GB2312-Kodierung: [x80-xff>]+ oder [xa1-xff]+
•UTF-8-Kodierung: [x{4e00}-x{9fa5}]+/u
Beispiel:Array ( [0] => Array ( [0] => 学习 [1] => 是一件快乐的事。 ) )
Das obige ist der detaillierte Inhalt vonphp: Vergleich der Verwendungsbeispiele von preg_match und preg_match_all. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!