Regex entspricht einem von zwei Wörtern


301

Ich habe eine Eingabe, die nur 2 Werte haben kann appleoder banana. Welchen regulären Ausdruck kann ich verwenden, um sicherzustellen, dass eines der beiden Wörter eingereicht wurde?


2
In welcher Sprache / Umgebung wird dieser reguläre Ausdruck implementiert? Regex scheint in vielen Situationen unnötiger Aufwand zu sein.
Mickmackusa

Antworten:


467

Das wird es tun:

/^(apple|banana)$/

um auszuschließen von erfassten Strings (z $1, $2):

(?:apple|banana)

43
Für einige ist es nützlich, dies als nicht erfassende Gruppe zu verwenden. Unter Verwendung (?:apple|banna)entweder passen, aber werden sie nicht in die Liste der erfassten Strings hinzufügen (zB $1, $2.. $N).
Doub1ejack

Hallo kurze Frage, was soll ich tun, wenn ich nicht möchte, dass Applebanana passt?
Grover Reyes

Die obige Regex stimmt mit Apfel und Banane überein, stimmt jedoch nicht mit Apfelbanana überein.
Phlogratos

99

Es gibt verschiedene Regex-Engines, aber ich denke, die meisten davon funktionieren damit:

apple|banana

55
Wenn Sie mehr in Ihre Regex einfügen möchten, müssen Sie Ihre Wörter wie folgt in Klammern setzen : (apple|banana).
Brian J

aber wie kann man die Groß- und Kleinschreibung nicht berücksichtigen?
Nitish

Das ist mit der re.IGNORECASEFlagge gesetzt. ZB:re.compile("(apple|banana)", re.IGNORECASE)
Troels Ynddal

-8

/.txt|.tif/Auf SiteScope kann ein regulärer Ausdruck verwendet werden, um 'Dateinamenübereinstimmung' für den Verzeichnismonitor zu suchen, wenn zwei verschiedene Dateitypen durchsucht werden - Dateien, die auf .txt oder .tif enden

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.