Ich programmiere derzeit einen Vokabularalgorithmus, der prüft, ob ein Benutzer das Wort richtig eingegeben hat. Ich habe die folgende Situation: Die richtige Lösung für das Wort wäre "Teil1, Teil2". Der Benutzer sollte entweder "Teil1" (Antwort 1), "Teil2" (Antwort 2) oder "Teil1, Teil2" (Antwort 3) eingeben können. Ich versuche jetzt, die vom Benutzer angegebene Zeichenfolge mit dem folgenden automatisch erstellten regulären Ausdruck abzustimmen:
^(part1|part2)$
Dies gibt nur Antwort 1 und 2 als richtig zurück, während Antwort 3 falsch wäre. Ich frage mich jetzt, ob es einen Operator ähnlich | gibt das heißt and/or
statt either...or
.
Kann mir jemand helfen, dieses Problem zu lösen?
$or
Regex Match seinAntworten:
Ich gehe davon aus, dass Sie den regulären Ausdruck dynamisch erstellen möchten, um andere Wörter als Teil1 und Teil2 zu enthalten, und dass die Reihenfolge keine Rolle spielen soll. Wenn ja, können Sie so etwas verwenden:
Positive Übereinstimmungen:
Negative Übereinstimmungen:
quelle
funktioniert es?
quelle
Funktioniert das ohne Abwechslung?
oder warum nicht das?
Die erste funktioniert für alle Bedingungen, die zweite für alle außer
part2
(mit GNU sed 4.1.5)quelle
Kein Experte für Regex, aber Sie können es tun
^((part1|part2)|(part1, part2))$
. In Worten: "Teil 1 oder Teil 2 oder beides"quelle
Oder Sie können dies verwenden:
quelle