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

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

Barbara Streisand
Barbara StreisandOriginal
2024-11-09 03:44:02898Durchsuche

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!

Stellungnahme:
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