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:
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.
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!