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.