"Thomas Lindgaard" <thomas@it-snedkeren.dk> skrev i en meddelelse
news:3cbd43d7$0$97305$edfadb0f@dspool01.news.tele.dk...
> Filerne kan parses med preg_match_all, og jeg har noget grim kode som gør
> det... men er der en derude som kan skrive et reg.exp. der matcher efter
> følgende opskrift:
>
> 1) <id="
> 2) noget tekst
> 3) ">
> 4) noget som _ikke_ er </id>
> 5) </id>
preg_match_all('/<id="(.*?)">(.*?)<\/id>/s',$lang_buffer,$matches);
Fra perldoc perlre(i mangel på bedre):
s Treat string as single line. That is, change "." to
match any character whatsoever, even a newline, which
it normally would not match.
> Mit problem er 4) - hvordan definerer jeg at noget ikke må være strengen
> "</id>"? ([^</id>]* dur ikke - heller ikke når specialtegn escapes eller
der
> tilføjes gåseøjne).
Som du vidst selv er inde på senere i denne tråd: non greedy matching (".*?"
i stedet for bare ".*", det giver den mindste match muligt..)
--
Mvh. Nezar Nielsen,
Nano - Advanced Simplicity
http://www.nano.dk