Hilfe bei Regular Expressions benötigt

Haargel leer? Neue Freundin? Stromausfall? Teeladen überfallen? Server abgestürzt? Treppenhaus frisch gestrichen? Bus verpasst? Neuer Fernseher? Alles was niemanden interessiert, aber trotzdem irgendwie raus muss kannst Du hier loswerden...

Moderator: Super-Mod

Hilfe bei Regular Expressions benötigt

Beitragvon schmitti77 » 29.06.2006 22:27

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!
schmitti77
.
.
 
Beiträge: 2
Registriert: 29.06.2006 22:17

Beitragvon Gumbo » 30.06.2006 10:49

Die Größer-als- und Kleiner-als-Zeichen sind in URLs in ihrer Ursprungsform gar nicht erlaubt. Was genau versuchst du zu realisieren?
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier

re

Beitragvon schmitti77 » 03.07.2006 09:40

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
schmitti77
.
.
 
Beiträge: 2
Registriert: 29.06.2006 22:17

Beitragvon Bob » 06.07.2006 20:58

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.
Bob
Moderator
Moderator
 
Beiträge: 5044
Registriert: 01.10.2004 13:10


Zurück zu Talk Talk Talk

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron