php – PCRE-Behauptung für reguläre Ausdrücke

伊谢尔伦
Freigeben: 2016-11-21 17:16:07
Original
1582 Leute haben es durchsucht

Eine Behauptung ist ein Test für Zeichen vor oder nach der aktuellen Übereinstimmungsposition. Sie verbraucht eigentlich keine Zeichen. Zu den einfachen Assertionscodes gehören b, B, A, Z, z, ^, $ usw. Komplexere Aussagen werden in Untergruppen kodiert. Es gibt zwei Typen: Lookahead-Assertionen (von der aktuellen Position aus vorwärts testen) und Lookbehind-Assertionen (von der aktuellen Position aus rückwärts testen).

Der Abgleich einer Assertionsuntergruppe wird weiterhin auf normale Weise durchgeführt, der Unterschied besteht jedoch darin, dass sich der aktuelle Abgleichspunkt dadurch nicht ändert. Positive Behauptungen in Lookahead-Behauptungen (die bestätigen, dass diese Übereinstimmung wahr ist) beginnen mit „(?=", und negative Behauptungen beginnen mit „(?!". Beispielsweise stimmt w (?=;) mit einem Wort gefolgt von einem Semikolon überein, stimmt aber überein Das Ergebnis enthält kein Semikolon. foo(?!bar) entspricht allen Vorkommen von „foo“, denen nicht unmittelbar „bar“ folgt. Beachten Sie ein ähnliches Muster (?!foo)bar, mit dem nicht alle Vorkommen gefunden werden können denen nicht „bar“ vorangestellt ist, „foo“ mit „bar“ übereinstimmt, wird jedes Vorkommen von „bar“ gefunden, da die Behauptung (?!foo) immer TRUE ist, wenn die nächsten drei Zeichen „bar“ sind Dieser Effekt soll erreicht werden.

Positive Behauptungen in Lookbehind-Behauptungen beginnen mit „(?<=", und negative Behauptungen beginnen mit „(?

Mehrere Behauptungen (in beliebiger Reihenfolge) können gleichzeitig auftreten. Beispiel: (?<=d{3})(?

In diesem Fall überprüft die erste Behauptung die ersten 6 Zeichen von (aktueller Übereinstimmungspunkt) und prüft, ob die ersten drei Zeichen Zahlen sind, und dann prüft die zweite Behauptung, ob die ersten drei Zeichen von (aktueller Übereinstimmungspunkt) sind ) sind nicht „999“.

Behauptungen können mit beliebiger Komplexität verschachtelt werden. Beispiel: (?<=(?

Behauptungsuntergruppen sind nicht erfassende Untergruppen und können nicht mit Quantifizierern geändert werden, da es keinen Sinn macht, mehrere Behauptungen für dasselbe zu erstellen. Wenn alle Behauptungen eine erfassende Untergruppe enthalten, dann für den Zweck Wenn Sie die Anzahl der Untergruppen im Muster erfassen, werden alle gezählt. Die Teilzeichenfolgenerfassung kann jedoch nur für positive Behauptungen verwendet werden, da sie für negative Behauptungen bedeutungslos ist.

Die maximale Anzahl an Untergruppen, die Sie haben können, beträgt 200, einschließlich Behauptungen.


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