Heim > Backend-Entwicklung > C++ > Wie wirkt sich die Operatorreihenfolge auf die Übereinstimmung in regulären Ausdrücken aus?

Wie wirkt sich die Operatorreihenfolge auf die Übereinstimmung in regulären Ausdrücken aus?

Patricia Arquette
Freigeben: 2024-12-31 15:03:22
Original
564 Leute haben es durchsucht

How Does Operator Order Affect Matching in Regular Expressions?

Operatorreihenfolge in regulären Ausdrücken: (..|.. ... ..|..)

In regulären Ausdrücken ist die Die Rangfolge für Ausdrücke in (..|.. ... ..|..) ist von links nach rechts. Die erste passende Alternative „gewinnt“ und nachfolgende Alternativen werden nicht bewertet. Dieses Verhalten ist charakteristisch für nichtdeterministische endliche Automaten (NFAs), die üblicherweise in Regex-Engines verwendet werden.

Links-nach-Rechts-Auswertung

Zum Beispiel der Ausdruck ( aaa|bb|a) stimmt mit „bb“ in der Zeichenfolge „bbac“ überein, da „bb“ im Regex-Muster vor „a“ erscheint. Wenn Sie stattdessen Regex.Matches verwenden würden, würden sowohl „bb“ als auch „a“ übereinstimmen.

Reihenfolge der Alternativen

Innerhalb einer nicht verankerten Alternativgruppe wird die Die Reihenfolge der Alternativen ist wichtig. Beispielsweise stimmt der Ausdruck (a|aa|aaa) mit jedem „a“ in der Zeichenfolge „abbccaa“ überein.

Wenn jedoch Wortgrenzen zur Verankerung des Ausdrucks verwendet werden, wird die Reihenfolge der Alternativen irrelevant. Beispielsweise stimmt (.)a(.|$) mit „a“ in „abbccaa“ überein, unabhängig von der Reihenfolge der Alternativen „.*“ und „$.“

Hinweis zum RegexOptions.RightToLeft-Flag

Es ist wichtig zu beachten, dass nur das RegexOptions.RightToLeft-Flag gilt beeinflusst die Richtung, in der die Eingabezeichenfolge gescannt wird, nicht die Reihenfolge, in der das Regex-Muster verarbeitet wird.

Das obige ist der detaillierte Inhalt vonWie wirkt sich die Operatorreihenfolge auf die Übereinstimmung in regulären Ausdrücken aus?. 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