Heim  >  Artikel  >  Web-Frontend  >  Wie verwende ich Alternationen in eckigen Klammern in regulären Ausdrücken (Regex)?

Wie verwende ich Alternationen in eckigen Klammern in regulären Ausdrücken (Regex)?

Linda Hamilton
Linda HamiltonOriginal
2024-10-23 22:51:02548Durchsuche

How to Use Alternation Inside Square Brackets in Regular Expressions (Regex)?

Verstehen des Problems mit Alternationen in eckigen Klammern

Beim Erstellen eines regulären Ausdrucks (Regex) für eine Suchmaschinenzeichenfolge sind Sie auf eine Herausforderung gestoßen mit Abwechslung in eckigen Klammern. Ihr regulärer Ausdruck zielt darauf ab, Zeichenfolgen mit „wd“ zusätzlich zu „word“ oder „qw“ abzugleichen. Obwohl Sie mit verschiedenen Ansätzen experimentiert haben, konnten Sie nicht das gewünschte Ergebnis erzielen.

Das einfache Einschließen mehrerer Zeichen in eckige Klammern führt in JavaScript nicht zu einer Abwechslung; es bezeichnet stattdessen einen Zeichensatz. Der Wechsel, der mehrere Alternativen innerhalb einer bestimmten Reihenfolge abgleicht, wird mithilfe von Klammern erreicht. Daher sollte die korrekte Syntax lauten:

.*baidu.com.*[/?].*(wd|word|qw){1}=

oder

.*baidu.com.*[/?].*(?:wd|word|qw){1}=

Durch das Einschließen der Alternativen („wd“, „word“ und „qw“) in Klammern aktivieren Sie Wechsel. Das „?:“ vor den Klammern im zweiten regulären Ausdruck macht die Gruppierung nicht erfassend, was verhindert, dass ihr beim Abgleich eine erfassende Gruppen-ID zugewiesen wird.

Das obige ist der detaillierte Inhalt vonWie verwende ich Alternationen in eckigen Klammern in regulären Ausdrücken (Regex)?. 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