Seite 1 von 1

Hilfe bei Regular Expressions benötigt

Verfasst: 29.06.2006 22:27
von schmitti77
Hallo zusammen,

bin absoluter Neuling in diesem Thema und benötige folgendes:

Ich möchte alle Vorkommen von <=|<|=|>|>= aber nicht deren Auftreten innerhlab eines durch " "-gekennzeichnete String extrahieren
Also z.B.

Ausdruck1=Ausdruck2 wobei für Ausdruck2 z.B. "Hallo=ich=bins" stehen kann und diese Gleichheitszeichen innerhalb der Anführungszeichen ignoriert werden sollen

Hoffe ich habe mich einigermaßen verständlich ausgedrückt.

Vielen Dank schon mal!

Verfasst: 30.06.2006 10:49
von Gumbo
Die Größer-als- und Kleiner-als-Zeichen sind in URLs in ihrer Ursprungsform gar nicht erlaubt. Was genau versuchst du zu realisieren?

re

Verfasst: 03.07.2006 09:40
von schmitti77
Ich habe ein Java-Anwendung, in der ich extern einige "Mini-Regeln" definieren möchte. z.B.

{CurrentObject} >= "test=test2" -> macht hier zwar keinen Sinn, soll aber die Problematik des "=" zeigen. Current-Object ist einfach eine von mir definerte Variable


Dabei möchte ich diese Regel im Java-Programm zerlegen. Zum Einen möchte ich die Operatoren (>,<, =,...) mittels match.find() ermitteln und zum anderen die Ausdrücke ohne diese Operatoren über java den text.split(regexpr) extrahieren, damit ich z.B. zwei getrennte Liste bekomme. Wenn innerhalb eines definierten Ausdrucks, der in Anführungszeichen ("test=test2") steht, dann möchte ich kein Matching.

Ich habe bereits folgendes versucht, was in Perl zumindest annähernd meinem gewünschten Ergebnis nahe kommt aber in Java ein anderes Ergebnis liefert (Die Regel wird komplett gemacht und nicht die Operatoren (<,>...) ((\{.*\})|(\".*\"))\s+([=<>]+)\s+((\{.*\})|(\".*\"))/)
Daher glaube ich mittlerweile, dass es an der Java-RegExpression Interpretation liegt!
Geht das vielleicht noch irgendwie anders?

Ich hoffe mein Problem ist nun etwas klarer....
Hast du damit vielleicht schon zufällig Erfahrung gesammelt?

Vielen Dank

Verfasst: 06.07.2006 20:58
von Bob
bin absoluter Neuling in diesem Thema
um mod_rewrite bzw. Anwendungsbereich v. mod_r. geht es hier aber nicht?

Code: Alles auswählen

((\{.*\})|(\".*\"))\s+([=<>]+)\s+((\{.*\})|(\".*\"))/
ergibt bei

Code: Alles auswählen

{CurrentObject} >= "test=test2"/
aber normal wahr. Soll das "not matched" ergeben, müsstest du wohl

Code: Alles auswählen

((\{.*\})|(\"[^<>=]*\"))\s+([=<>]+)\s+((\{.*\})|(\"[^=<>]*\"))/
nutzen. Java nutzt aber auch PCRE? \s ist z.B. ein PCRE-Ausdruck, wie ihn z.B. die POSIX Ext. RegEx library nicht kennt.