Wenn ich eine Liste von regulären Ausdrücken habe, gibt es eine einfache Möglichkeit festzustellen, dass keine von beiden eine Übereinstimmung für dieselbe Zeichenfolge zurückgibt?Gegenseitig exklusive reguläre Ausdrücke
Das heißt, die Liste ist gültig, wenn und nur dann, wenn für alle Strings maximal ein Element in der Liste wird die gesamte Zeichenfolge übereinstimmen.
Es scheint, wie dies sehr schwierig sein wird (vielleicht unmöglich?) Endgültig zu beweisen, aber ich kann keine Arbeiten zu diesem Thema zu finden scheinen.
Der Grund, warum ich frage, ist, dass ich an einem Tokenizer arbeite, der Regex akzeptiert, und ich möchte sicherstellen, dass immer nur ein Token dem Kopf der Eingabe entsprechen kann.
möglich Duplikat [Wie kann man erkennen, ob zwei reguläre Ausdrücke in den Saiten überlappen können sie übereinstimmen?] (Http://stackoverflow.com/questions/1849447/how-can-you-detect-if-two-regular -Ausdrücke-Overlap-in-the-Strings-sie-können-Matte) –
Ich denke, ich missverstanden. Sie meinen, dass zwei gegebene reguläre Ausdrücke vollständig gegenseitig zu * jeder * Eingabestring exklusiv sein muss? Das heißt, dass von 2^32 möglichen Vier-Byte-Strings eine Regex nur eine Möglichkeit erfüllen kann?Ist das nicht das Gleiche wie zu sagen: passen Sie genau diese Zeichenfolge an? – Abel
Ich meine, der Schnittpunkt der Regexe muss Null sein. Keine Zeichenfolge entspricht mehr als 1 Regex. – captncraig