Beitrag von Juri (43 Beiträge) am Donnerstag, 13.Dezember.2001, 12:53.
Looking ahead and looking behind bei reguläre Ausdrücken
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 13.Dezember.2001, 14:27.
Re: Looking ahead and looking behind bei reguläre Ausdrücken
Hui, Du fährst ja Geschütze auf... ;-) Also bei den regulären Ausdrücken is alles drin, was in Perl 5.6 so drin is... Das "x" brauchst Du für die erweiterten Sachen aber nicht, das "x" steht eigentlich für was anderes (Du kannst dann z.B. Spaces in den regex benutzen). Wo soll bei Deiner regex denn lookbehind stehen? Das (?=...) ist ein "zero-width positive _lookahead_ assertion". Lookbehind wäre (?<=...) (beachte da <-zeichen)
Ich bezweifle aber, dass Du das brauchst, was willst du denn genau machen?
Antworten
Beitrag von Juri (43 Beiträge) am Donnerstag, 13.Dezember.2001, 14:58.
Re: Looking ahead and looking behind bei reguläre Ausdrücken
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 14.Dezember.2001, 16:33.
Re: Looking ahead and looking behind bei reguläre Ausdrücken
Konnte jetzt nich ganz rauslesen, ob Du's schon gelöst hast, hier eine Möglichkeit:
$text=~ s/<li>(.*?)(?=<li>)/.../gi;
sollte das eigentlich machen... Also kein lookbehind, sondern ein lookahed, warst beim ersten Mal schon fast dran ;-)
Ích vermute aber, Du wolltest auch den _letzten_ Fall mit erwischen, der z.b. bei folgendem HTML-Code nicht dabei gewesen wäre:de:
<ul><li>blabla<li>blubbb<li>...</ul>
Also beim letzten hättest Du _keinen_ Treffer... Deshalb wolltest Du das lookbehind (denk ich mal). ICh würds so machen:
$text=~ s/<li>(.*?)(?=<li>|</ul>|</ol>)/.../gi;
Antworten
Beitrag von Juri (43 Beiträge) am Freitag, 14.Dezember.2001, 16:55.
Re: Looking ahead and looking behind bei reguläre Ausdrücken
Danke für Deine schöne Antwort!
Werd' wohl meine Lösung etwas damit verschönern ;-)
Das wollte ich Dir ja schon so gegen 14.30 Uhr schreiben, aber da war bp ziemlich down :((
Hoffe, Du bist nicht ins Schwitzen gekommen
Gruß Juri
Antworten
Beitrag von Juri (43 Beiträge) am Donnerstag, 13.Dezember.2001, 15:47.
Re: Looking ahead and looking behind bei reguläre Ausdrücken
Da das von mir versuchte (viele Versuche!) mit Syntaxfehler und ähnlichem geendet hat (ohne extandet regular expressions) hat alles geklappt, bin ich da etwas durcheinander gekommen, wie man denn nun wohin schaut:
Für das eigentliche Problem (nicht das oben beschreiben, denn das hab mittlerweile anders gelöst)genötige ich ein:
also ein zero-width negative look-behind assertion.
Das hab ich nicht zum Laufen gebracht.
Das mit dem X hab ich von der Seite
http://www.perldoc.com/perl5.6.1/pod/perlop.html#s-PATTERN-REPLACEMENT-egimosx
Juri
Antworten