Ich versuche, einen JavaScript-freundlichen regulären Ausdruck zu erstellen, der mit Strings übereinstimmt, die mit einer bestimmten Wortgruppe (A) beginnen und andere Wörter enthalten die Zeichenkette muss entweder innerhalb einer Gruppe von Wörtern (B) oder nicht innerhalb einer Gruppe von Wörtern (C) sein.Regex zum Suchen einer Wortgruppe mit einer optionalen Liste von eingeschlossenen und ausgeschlossenen Wörtern
so dass die folgenden Wortgruppen (A), (B) und (C) angegeben:
(A) Test, Sample
(B) Good, Stuff
(C) Hello, World
und die folgenden Beispiel Saiten gegeben, die mit jedem Wort in (A) beginnen:
Test
Test Good
Sample Stuff
Test Hello
Sample World
Test Hello Stuff
Sample Good World
Test Other
Test Other Stuff
Sample Other World
Test Other Stuff Other
die folgenden Strings angepasst würden:
Test
Test Good
Sample Stuff
Test Other Stuff
Test Other Stuff Other
Idealer (in diesem Fall "Test" und "Probe") nur die Wörter in der Gruppe A würde durch den Ausdruck verbraucht, und der Rest würde durch positive und negative Lookaheads behandelt werden. Ich kann jedoch auch mit einer Zeichenfolge ganz oder teilweise arbeiten, die mit (A) beginnt, die enthält (B), aber nicht (C) enthält.
Ich habe jetzt einige Tage an diesem Problem gearbeitet, und die nächste Antwort, die ich auf dieser Website bisher ist:
Is there a regex to match a string that contains A but does not contain B
jedoch die Lösung, die dort vorgeschlagen wird, nicht die umfasst Voraussetzung für das Starten von Wörtern, die einzeln abgeglichen werden (wie es in meinem Beispiel mit dem ersten Spiel "Test" der Fall ist).
Der nächstgelegene ich zu einer Lösung gekommen sind, ist der folgende Ausdruck:
Sehen Sie hier für ein funktionierendes Beispiel:
https://regex101.com/r/nL0iE3/1
Dies gilt jedoch nicht einzelne Instanzen von Wörtern entsprechen in (A) (zB "Test") und Wörter in (C) übereinstimmen, wenn sie vor Wörtern in (B) vorkommen (zB "Sample World Good").
Ich hoffe, dass das Sinn macht, aber lass es mich wissen, wenn ich noch etwas klären kann. Ich wäre sehr dankbar für jede Hilfe oder Hinweise in die richtige Richtung.
Das sieht ziemlich gut aus, aber es wird etwas wie "Test Word Stuff" übereinstimmen. Die Anforderungen sehen jedoch etwas verwirrend aus. C klingt bei B redundant. – NullUserException
Ahh, ich dachte, andere Wörter wären erlaubt (weil, wie du geschrieben hast, warum brauchen wir dann eine Liste verbotener Wörter?), Aber vielleicht sind sie es auch nicht. Das würde die Regex viel einfacher machen. –