In der PHP-Entwicklung sind reguläre Ausdrücke sehr effiziente Werkzeuge, mit denen Entwickler schnell Zeichenfolgenabgleiche, -ersetzungen, -extraktionen und andere Vorgänge durchführen können. In diesem Artikel werden erweiterte Anwendungen regulärer Ausdrücke in PHP vorgestellt, darunter Rückverweise, gieriges und verzögertes Matching, Behauptungen mit der Breite Null usw.
1. Backreference
Backreference ist ein sehr wichtiges Konzept in regulären Ausdrücken. Es kann den Inhalt des bereits übereinstimmenden Unterausdrucks verwenden, um den folgenden String abzugleichen. Wenn Sie in PHP Rückverweise auf reguläre Ausdrücke verwenden, müssen Sie das Sonderzeichen „“ in Kombination mit Zahlen verwenden.
Zum Beispiel kann der folgende reguläre Ausdruck zwei aufeinanderfolgende identische Wörter finden:
/^(w+)s$/
wobei „ „ einen Rückverweis auf den ersten Unterausdruck darstellt, der mit dem vorherigen Wort übereinstimmt.
2. Greedy- und Lazy-Matching
In regulären Ausdrücken bedeutet Greedy-Matching, so viele Zeichen wie möglich abzugleichen, während Lazy-Matching bedeutet, so wenig Zeichen wie möglich abzugleichen. In PHP können Sie Greedy- und Lazy-Matching implementieren, indem Sie „?“ nach dem Quantifizierer hinzufügen. Standardmäßig wird Greedy-Matching verwendet.
Zum Beispiel kann der folgende reguläre Ausdruck mit dem a-Tag in HTML übereinstimmen:
/<a.*?href="(.*?)".*?>(.*?)</a>/
Darunter steht .? für Lazy Matching, (.?) für das Extrahieren der URL im href und des Textinhalts im a-Tag .
3. Zusicherung mit Nullbreite
Zusicherung mit Nullbreite bezieht sich darauf, ob die Vorder- oder Rückseite einer bestimmten Position in der übereinstimmenden Zeichenfolge eine bestimmte Bedingung erfüllt, der übereinstimmende Inhalt jedoch nicht zum Ergebnis gehört, das als Null bezeichnet wird. Breite. Zu den üblichen Behauptungen mit der Breite Null gehören positiver Lookahead, negativer Lookahead, positiver Lookback und negativer Lookahead.
(1) Positiver Look-Ahead
Positiver Look-Ahead passender Inhalt muss unmittelbar auf den abzugleichenden Inhalt folgen.
Zum Beispiel kann der folgende reguläre Ausdruck mit einem Wort gefolgt von einer Zahl übereinstimmen:
/w+(?=d)/
Wobei „(?=d)“ einen vorwärtsgerichteten Lookahead bedeutet, Zahlen abgleicht und keine Zahlen als Ergebnis verwendet.
(2) Negativer Lookahead
Der Inhalt, der durch einen negativen Lookahead erfolgreich abgeglichen wird, darf nicht unmittelbar auf den abzugleichenden Inhalt folgen.
Zum Beispiel kann der folgende reguläre Ausdruck mit einem Wort übereinstimmen, dem keine Zahl folgt:
/w+(?!d)/
wobei „(?!d)“ einen negativen Lookahead darstellt, der mit Inhalten übereinstimmt, die keine Zahl sind, und diese Inhalte nicht verwendet infolge.
(3) Forward Lookback
Forward Lookback Der erfolgreich passende Inhalt muss vor dem abzugleichenden Inhalt liegen.
Zum Beispiel kann der folgende reguläre Ausdruck Datumsangaben abgleichen, bei denen das Jahr vor dem Monat und dem Tag steht:
/(?<=d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[01]))d{4}/
wobei „(?<=d{2}(0[1-9]|1[0-2 ] )(0[1-9]|1-2|3[01]))“ bezeichnet einen regulären Ausdruck, der nach vorne schaut und den Monat und den Tag und damit das Jahr abgleicht und den Monat und den Tag nicht als Ergebnis verwendet .
(4) Negativer Lookback
Der Inhalt, der durch einen negativen Lookback erfolgreich abgeglichen wurde, darf nicht vor dem abzugleichenden Inhalt liegen.
Zum Beispiel kann der folgende reguläre Ausdruck mit allen Zeilen außer den Zeilen übereinstimmen, die mit . beginnen:
/(?<!^).w+/
wobei „(?
4. Fazit
Reguläre Ausdrücke spielen eine große Rolle in der PHP-Entwicklung, insbesondere bei der String-Verarbeitung, der Datenbereinigung usw., und sie sind ein unverzichtbares Werkzeug. In diesem Artikel werden die grundlegenden Inhalte fortgeschrittener Anwendungen regulärer Ausdrücke vorgestellt. Entwickler können nach und nach eingehend lernen, um ihre PHP-Kenntnisse weiter zu verbessern.
Das obige ist der detaillierte Inhalt vonErweiterte Anwendungen regulärer Ausdrücke in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!