backreference im regulären ausdruck

  • Themenstarter Themenstarter membrain
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

membrain

Gast
hi alle. ich hab n kleines problem mit dem ausdruck:
Code:
Pattern p = Pattern.compile("=\"(.*?)\"");
nu will ich als ergebnis die backreference $1
hier bekomme ich: ="inhalt"

was ist zutun?
danke, gruß
 
Etwas genauer beschreiben könntest du das schon... :roll:
was soll (.*?) bitte bringen? Finde was, oder auch nicht? '*?' ist sowieso unnötig...
Wie sieht dein Eingabe-String aus, und was soll später rauskommen?
 
mit dem fragezeichen erreiche ich, dass sich der quatifier nicht gierig verhällt(hab ich zumindest immer so in php gemacht).
und später soll eben die backreference $1 rauskommen. also was in (klammern) steht sollte das ergebnis sein.
ich könnte natürlich dem ergebnis danach einfach das "=" und die anfürungsstriche entziehen, aber ich will das ganze in einem ausdruck.
hoffe ist jetzt bissl verständlicher formuliert.

danke, gruß
 
Code:
("=\"(.*)\"")
Das ist schon korrekt (wie gesagt das ? ist unnötig!).
Die Capturing-Group1 bekommst du mit
Code:
matcher.group(1)
 
ein beispiel wäre:
Code:
String str="<img src=\"datei.jpg\"><a href=\"document.htm\">bla</a>";
Strign erg;
Pattern p = Pattern.compile("=\"(.*?)\"");
while(erg=p.match ... (str)) {
 //erg = datei.jpg
 //erg=document.htm
}
;

so, und das ergebniss ist z.B: "datei.jpg" und im zweiten schleifendurchlauf "document.htm".

gruß
 
(ups, name vergessen) jedenfalls, suche ich den ausdruck, der mir z.b diese dateinamen liefert.

gruß
 
Wenn davor noch andere Zeichen kommen, und du mehrere Tags matchen willst sollte dein RegEx so aussehen:
Code:
=\"([^\"]+)\"
Arbeite mit matcher.find(), oder matcher.lookingAt().
Die ergebnisse bekommst du über matcher.group(1);
 
thx, funz! nach der group methode hab ich gesucht 🙂
das fragezeichen ist übrigens nicht unnötig. es verhindert (wie geschrieben und getestet), dass der quantifier sich gierig verhällt.

gruß
 
membrain hat gesagt.:
thx, funz! nach der group methode hab ich gesucht
das fragezeichen ist übrigens nicht unnötig. es verhindert (wie geschrieben und getestet), dass der quantifier sich gierig verhällt.

gruß
Ist mir neu. Gib mir bitte mal ein Beispiel wo das einen Unterschied macht ???:L
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben