Am 11. Juni 2010 14:01 schrieb GS <[email protected]>:
> problem dabei ist, dass statt des anführungszeichens nach user="xyz
> schon mal ein paar weiter gesprungen wird. das ergebnis des regex sieht dann 
> so aus (für user):
>
> MichaH" lat="50.0693044
>
> der regex "stoppt" also zu spät.
>
> wie kommt das? warum nimmt er lon=xxx nicht auch dazu und vor allem:
>
> wie mache ich es richtig?

Grund ist dass Regex per default greedy sind, also so viel wie möglich
matchen wie der Ausdruck gerade noch passt.
Du kannst das umgehen indem du beispielsweise
/ user=\"(.+?)\"/
oder auch
/ user=\"([^\"]+)\"/
schreibst

Lies dir mal http://search.cpan.org/~rgarcia/perl/pod/perlretut.pod
bezüglich greedy quantifiers durch. Und schau dir mal den Regex Coach
(http://www.weitz.de/regex-coach/) an. Damit kannst Du Ausdrücke
interaktiv testen.

Rolf

_______________________________________________
Talk-de mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/talk-de

Antwort per Email an