2016-11-27 1 views
-1

Beispiel: Ich brauche eine RegexMuster derIch brauche eine Regex, die Muster wie „(abc OR (def UND DSHD)) übernehmen .. etc

  1. String beide mit Mustern in der folgenden Kombination akzeptiert akzeptieren soll Klammern und ohne Klammern, erstes Wort jeder Zeichenfolge sollte entweder mit NOT oder ohne NOT beginnen.
  2. Jedem Wort im Satz sollte AND/OR folgen.

  3. ZB: „(NICHT CBE AND (Mann oder eine Henne))

+2

Was ist Ihr regulärer Ausdruck bisher? –

+5

Da Sie versuchen, verschachtelte Strukturen zu handhaben, ist Regex nicht das beste Werkzeug. Sie suchen wahrscheinlich nach Parser. Vielleicht versuchen Sie einen mit ANTLR zu erstellen. – Pshemo

+1

@Pshemo Ich wünschte, ich könnte deinen Kommentar mehr als einmal positiv bewerten. Ich habe auch eine gute Laufleistung von einem Werkzeug namens [Javaluator] (http://javaluator.sourceforge.net/en/home/) bekommen. –

Antwort

0

Frage ist nicht klar, aber aufgrund von Angaben: /(NOT |) ([azaz]) \ w + (AND | OR) (([azaz]) \ w + (AND | OR) ([azaz]) \ w +)/g

für unter Fällen gut funktioniert: (NICHT CBE AND (Mann oder eine Henne)) (CBE UND (Mann ODER Henne)) NICHT CBE AND (Mann ODER Henne)

Hier ist die l Tinte: http://regexr.com/3eoik

+0

Ich glaube an Java Regex a/(Schrägstrich) passt sich selbst, so verstehe ich nicht, warum Sie damit anfangen. Ich habe mit deinem Link ein bisschen herumgespielt und ich denke, dass es sich in manchen Situationen komisch verhält. Es findet keine Übereinstimmung in "(NOT cbe AND man OR hen)". Weder in "(NICHT C UND (Mann ODER Henne))". –

Verwandte Themen