Heim > Backend-Entwicklung > PHP-Tutorial > Wie funktioniert der reguläre Ausdruck „[^][]' in PCRE?

Wie funktioniert der reguläre Ausdruck „[^][]' in PCRE?

Barbara Streisand
Freigeben: 2024-11-09 03:44:02
Original
872 Leute haben es durchsucht

How does the

Den regulären Ausdruck „[^][]“ verstehen:

Der reguläre Ausdruck „[^][]“ im bereitgestellten Muster „[(?:[^][]|(?R))*]“ entspricht allen Zeichen, die keine eckigen Klammern ([ oder ]) sind.

Erklärung:

Einzigartige Überlegungen:

Im Gegensatz zu anderen Regex-Engines wird PCRE (in den „preg_“-Funktionen von PHP verwendet ) erfordert kein Escapezeichen [ oder ] innerhalb einer Zeichenklasse. Dies liegt daran, dass PCRE sie von anderen Zeichenklassen unterscheidet.

Außerdem ist das Regex-Muster „[^]]“ nicht mehrdeutig, da ] das erste Zeichen ist. Dies bedeutet, dass es mit Zeichen übereinstimmt, denen ein ] folgt. Um ein a gefolgt von ] zuzuordnen, schreiben Sie 1.

Optimieren des Musters:

Um das Muster mehr zu machen Wiederverwendbar und effizient, kann es wie folgt optimiert werden:

  • ([(?:[^][] |(?-1))* ]): Dieses Muster erfasst eckige Klammern mit verschachtelten Klammern.
  • ([[^][](?:(?-1)[^][])* ]): Dieses Muster ist noch effizienter, da die Abwechslung eliminiert wird.

Variationen zwischen Programmiersprachen:

Der in PHP 7.3 eingeführte Inline-Modifikator „xx“ ermöglicht das Ignorieren von Leerzeichen innerhalb von Zeichenklassen. Diese Syntax wird jedoch nicht von allen Regex-Varianten wie Ruby und JavaScript unterstützt. Insbesondere in JavaScript ist „[]“ ein Token, das immer nicht übereinstimmt, und „[^]“ stimmt mit jedem Zeichen überein.


  1. a]

Das obige ist der detaillierte Inhalt vonWie funktioniert der reguläre Ausdruck „[^][]' in PCRE?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage