Heim > Backend-Entwicklung > PHP-Tutorial > Einführung in die regulären PHP-Ausdrücke /i, /s, /x,/u, /U, /A, /D, /S usw.

Einführung in die regulären PHP-Ausdrücke /i, /s, /x,/u, /U, /A, /D, /S usw.

零下一度
Freigeben: 2023-03-14 13:00:02
Original
1894 Leute haben es durchsucht

i (PCRE_CASELESS)

Wenn dies eingestellt ist Modifikatoren , Buchstaben im Muster werden ohne Berücksichtigung der Groß-/Kleinschreibung abgeglichen .

m (PCRE_MULTILINE)

Standardmäßig geht PCRE davon aus, dass die Zielzeichenfolge aus einzeiligen Zeichen besteht(Tatsächlich ist es jedoch so Kann mehrere Zeilen enthalten ), "Zeilenanfang"Metazeichen(^)Entspricht nur dem Anfang der Zeichenfolge , und "Zeilenende "Metazeichen($)Entspricht nur dem Ende der Zeichenfolge , oder dem letzten Zeilenumbruchzeichen (, sofern nicht DModifikator hat das gleiche Verhalten wie perl. Wenn dieser Modifikator gesetzt ist, „Zeilenanfang und Zeilenende Es stimmt mit , vor oder nach jedem Zeilenumbruchzeichen in der Zielzeichenfolge überein. Darüber hinaus stimmt , mit überein Die letzte Position ist . Dies entspricht dem perl /m ModifikatorWenn die Zielzeichenfolge nicht das "n"Zeichen , oder ^ oder $, erscheint nicht im Muster

Wenn dieser Modifikator festgelegt ist , stimmt das Punkt-Metazeichen im Muster mit allen Zeichen , einschließlich Zeilenumbrüchen . Ohne diesen -Modifikator stimmt der Punkt nicht mit dem Zeilenumbruchzeichen überein . Der Modifikator entspricht dem Modifikator /s in perl 🎜>. Eine negierte Zeichenklasse wie [^a] passt immer zu Zeilenumbrüchen , hängt nicht von der Einstellung ab dieses Modifikators .

x ( PCRE_EXTENDED)

Wenn dieser Modifikator festgelegt ist

, werden die Zeichen im -Muster nicht maskiert oder nicht. Leerzeichen-Datenzeichen innerhalb einer Klasse werden immer ignoriert , und # Zeichen und folgende Zeichen außerhalb einer Zeichenklasse ohne Escapezeichen. Zeichen zwischen einer neuen Zeile werden ebenfalls ignoriert Modifikator entspricht perl Die /x Modifikatoren , in ermöglichen, dass das kompilierte Muster Kommentare enthält Hinweis: Dies wird nur für Datenzeichen verwendet. Leerzeichen können immer noch nicht in der Sonderzeichenfolge des Musters vorkommen. . Beispielsweise führt die Sequenz (?( eine bedingte Untergruppe (Übersetzungshinweis: Wenn in der durch diese Syntax definierten Sonderzeichenfolge ein Leerzeichen erscheint, führt dies zu einem Kompilierungsfehler 🎜> wie ( ?( verursacht den Fehler .).

e (PREG_REPLACE_EVAL)

Wenn dieser Modifikator nach Einstellung , preg_replace() nach Durchführung der Rückreferenzersetzung der Ersatzzeichenfolge , ersetzt die Zeichenfolge als php Codeauswertungsausführung (eval Funktionsmethode ), und verwenden Sie das Ausführungsergebnis als die Zeichenfolge, die tatsächlich an der Ersetzung teilnimmt Einfache Anführungszeichen, Doppelte Anführungszeichen, Backslash() und NULL-Zeichen werden mit Backslash-Escapezeichen versehen, wenn die -Rückverweisersetzung durch erfolgt.

Tipp

Bitte stellen Sie sicher

Der Ersatz Parameter besteht aus gültigem php Codestring, andernfalls php aufgerufen von in preg_replace() Die Zeile erzeugt einen Interpretationsfehler .

Hinweis: Nur preg_replace()Diesen Modifikator verwenden, AnderePCREDie Funktion ignoriert diesen Modifikator.

A (PCRE_ANCHORED)

Wenn mit Wenn dieser Modifikator gesetzt ist, wird der -Modus gezwungen, "verankert" Das Muster zu erstellen , bedeutet, den Abgleich so einzuschränken, dass nur nach vom Anfang der Zielzeichenfolge gesucht wird. Dieser Effekt kann auch mit den entsprechenden Mustern , und konstruiert werden, was auch perl Der einzige Weg, dieses Modell zu erreichen.

D (PCRE_DOLLAR_ENDONLY)

Wenn dieser Modifikator eingestellt ist , stimmt das Metazeichen-Dollarzeichen im -Muster nur mit dem Ende der Zielzeichenfolge überein 🎜>Wenn dieser Modifikator nicht gesetzt ist , Wenn die Zeichenfolge mit einer neuen Zeile endet , Das Dollarzeichen stimmt auch mit dem Zeilenumbruchzeichen überein (, aber nicht mit einem vorangehenden Zeilenumbruch , wenn der Modifikator ist). m ist gesetzt, Dieser Modifikator wird ignoriert in perl.S

Wenn ein Muster mehrmals verwendet werden muss, Um die Übereinstimmungsgeschwindigkeit zu verbessern

,

Es lohnt sich, etwas Zeit zu investieren eine zusätzliche Analyse durchzuführenWenn dieser Modifikator eingestellt ist , diese zusätzliche Analyse wird durchgeführt derzeit, Diese Analyse eines Musters gilt nur für nicht verankerte Muster entspricht ( d. h. es gibt kein separates festes Startzeichen ).U (PCRE_UNGREEDY)

Dieser Modifikator kehrt das "Gierige"Muster um 🎜>Machen Sie den Quantifizierer standardmäßig auf „nicht gierig“, indem Sie den Quantifizierer verwenden, gefolgt von ? Kann ihn gierig machen . Dies ist nicht kompatibel mit perlEs kann auch mit eingestellt werden Modifikatoreinstellung im Modus (?U), oder als nicht gierig markieren mit einem Fragezeichen nach dem Quantifizierer ( wie .*?).Hinweis

:

Im Non-Greedy-Modus,

Normalerweise können keine Zeichen gefunden werden, die größer sind als

pcre.backtrack_limit .X

(PCRE_EXTRA)

Dieser Modifikator aktiviert die Anhangsfunktion von PCRE, die mit Perl nicht kompatibel ist . Jeder Backslash im Muster gefolgt von ingen einem -Zeichen ohne besondere Bedeutung führt zu einem Fehler , behalten diese Zeichen bei, um die Abwärtskompatibilität sicherzustellen Standard Im Fall von , in Perl, Auf den Backslash folgen keine Zeichen mit besonderer Bedeutung gelten als Originaltext dieses Zeichens Keine anderen Eigenschaften werden derzeit von diesem Modifikator gesteuert .

J

(PCRE_INFO_JCHANGED)Interne Optionseinstellungen

(?J)

Ändern Sie die lokale PCRE_DUPNAMESOptionUntergruppen doppelte Namen zulassen . (Anmerkung: kann nur über interne Optionen eingestellt werden, extern/J Die Einstellung führt zu einem Fehler.)u

( PCRE8)

Dieser Modifikator öffnet eine zusätzliche Funktion, die mit Perl nicht kompatibel ist. Musterzeichenfolgen werden berücksichtigt utf-8 von Der Modifikator ist von UnixVersionphp 4.1.0 oder höher, Win32 VersionPHP 4.2.3 ist jetzt verfügbar. php 4.3.5 beginnt mit der Überprüfung der Gültigkeit des Modus utf-8 Dieser Modifikator wird zusätzlich aktiviert Funktionalität von PCRE, die mit Perl nicht kompatibel ist. Dieser Modifikator ist ab PHP 4.1.0 unter Unix verfügbar und ab PHP 4.2.3 wird die Gültigkeit des Musters überprüft PHP 4.3.5.

Das obige ist der detaillierte Inhalt vonEinführung in die regulären PHP-Ausdrücke /i, /s, /x,/u, /U, /A, /D, /S usw.. 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