Dieser Artikel führt hauptsächlich in ein tiefgreifendes Verständnis der regulären PHP-Ausdrücke ein. Ich hoffe, dass er für alle hilfreich ist.
PHP-Freigabe regulärer Ausdrücke:
1. Erstellen Sie einen regulären Ausdruck
$regex = '/d/i';
ähnelt in gewisser Weise der ersten Methode in JavaScript, außer dass das Wort hier eine Zeichenfolge ist.
2. Sonderzeichen in regulären Ausdrücken
Sonderzeichen sind: + * ? ) { } = ! : -
3 8 Methoden, preg_match und preg_match_all, preg_replace und preg_replace_callback, preg_grep, preg_split, preg_last_error und preg_quote.
preg_match:
Führt einen regulären Ausdrucksabgleich durch
Gibt die Anzahl der übereinstimmenden Muster zurück
. Sein Wert ist 0-mal (keine Übereinstimmung) oder 1-mal, da preg_match() die Suche nachnach der ersten Übereinstimmung von beendet.
$subject = "dd133aa2";
$pattern = '/\d+/';
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
Gibt die Anzahl der vollständigen Übereinstimmungen zurück (möglicherweise 0) oder FALSE, wenn ein Fehler auftritt. Im folgenden Code sind $subject und $pattern die gleichen wie oben. Der einzige Unterschied besteht darin, dass preg_match durch preg_match_all ersetzt wird.
preg_match_all($pattern, $subject, $matches, PREG_OFFSET_CAPTURE); print_r($matches);
Die zurückgegebene Zahl ist 2, was zweimal übereinstimmt. Schauen Sie sich die Eingabe im Array $matches an, es gibt zwei. Eines mehr als oben.
preg_replace:
Führt eine Suche und Ersetzung regulärer Ausdrücke durch
Wenn subject ein Array ist, gibt preg_replace() ein Array zurück, andernfalls einen String. Wenn eine Übereinstimmung gefunden wird, wird der ersetzte Betreff zurückgegeben, andernfalls wird der unveränderte Betreff zurückgegeben. Tritt ein Fehler auf, wird NULL zurückgegeben.
Im Code ist $subject ein Array mit zwei Sätzen von Zeichenfolgen. Als nächstes werden mehrere Zahlen durch Großbuchstaben „Z“ ersetzt.
$subject = array("dd133aa2", "kk1ff3"); $pattern = '/\d+/'; $result = preg_replace($pattern, 'Z', $subject); print_r($result);
$subject = "dd133aa2"; $pattern = '/\d+/'; $result = preg_replace_callback($pattern, function($matches) { //$matches [0] => 133 //$matches [0] => 2 return 'Z'; }, $subject); print_r($result);
preg_grep:
Gibt Array-Einträge zurück, die mit dem Muster
übereinstimmengibt ein Array
zurück, das mithilfe des Schlüssels in der Eingabe indiziert wird. Im folgenden Beispielcode habe ich „ddsdfd“ zum Array „$subject“ hinzugefügt, das keine Zahlen enthält. Beim Abgleich habe ich diejenigen ohne Zahlen herausgefiltert. Was $result2 ausgibt, ist genau das Gegenteil. Es wird das gefilterte Ergebnis ausgegeben, aber der Schlüssel ist immer noch 2 und nicht 0.$subject = array("dd133aa2", "kk1ff3", "ddsdfd");
$pattern = '/\d+/';
$result = preg_grep($pattern, $subject);
$result2 = preg_grep($pattern, $subject, PREG_GREP_INVERT);
print_r($result);
print_r($result2);
preg_split:
Trennen Sie Zeichenfolgen durch einen regulären Ausdruck
返回一个使用 pattern 边界分隔 subject 后得到 的子串组成的数组。
下面代码中,我将$pattern中的表达式加了括号,为了在$result2中捕获到。
$subject = "dd133aa2cc"; $pattern = '/(\d+)/'; $result = preg_split($pattern, $subject); $result2 = preg_split($pattern, $subject, null, PREG_SPLIT_DELIM_CAPTURE); print_r($result); print_r($result2);
preg_last_error:
返回最后一个PCRE正则执行产生的错误代码
preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar'); $result = preg_last_error();//PREG_BACKTRACK_LIMIT_ERROR 调用回溯限制超出 print_r($result);
preg_quote:
转义正则表达式字符
返回转义后的字符串。
下面的代码中,$subject中有两个需要转义的字符,“.”和“?”。
将$result打印出后是“dd\.a\?a2cc”,而在$result2中,多加了个参数“a”,这样的话“a”也会被转义,“dd\.\a\?\a2cc”
$subject = "dd.a?a2cc"; $result = preg_quote($subject); $result2 = preg_quote($subject, 'a'); print_r($result); print_r($result2);
4、模式修正符
总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。
相关推荐:
Das obige ist der detaillierte Inhalt vonErfahren Sie mehr über reguläre PHP-Ausdrücke. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!