Hallo,
brauche die Hilfe eines Experten:wink:
Sonst hab ich immer Jakarta ORO als Regular Expression „Library/Paket“ benutzt und wollte nur, weil ich zu faul war die nochmals downzuloaden mit dem java.util.regex.* arbeiten
und ich bekomme es nicht hin.
Das Problem sind die „Backreferences“
das Pattern soll eine url mit ein paar get parameter matchen:
domainxy.deXXXXXXXXXXXX & param=word1+word2+word3&XXXXXXXXXXX
(die Leerzeichn sind notwendig sonst wird das in HTML irgendwie hier im Forum falsch dargestellt…)
Die X’s sind unwichtig. Ich möchte
a) sicherstellen, dass die Domain drin vorkommt und dann
b) der Paramatername „param“ gefolgt von den words 1 bis x
normalerweise hätte ich (ist jetzt nur mal kurz, evtl. sind da noch fehler drin, Slashes sind gequoted…)
Pattern.compile(„domainxy.de.*? & param=((.*?)(\+)?)+&“);
geschrieben.
Mein das ganze funktioniert auch.Es wird der ganze relevante Teil gematched, sofern die url den domainnamen enthält und mindestens ein „param=word“
Aber ich komme nicht an die „Backreferences“ sprich diese Klammern ran. Im normalen Perl Syntax und im ORO-Paket kann man die Klammern dann einzeln in Java abfragen bzw. auslesen.
In java.util.regex gibt es mit find() und group() auch zwei Methoden nur weiss ich a) nicht ob diese überhaupt dafür gedacht sind und b) ich bekomme das nicht zum Laufen mit denen, hab schon alles probiert.
Wer hat da ein paar gute Tips parat.