[Dresden-pm] Re: Regex-Frage

Steffen Schwigon schwigon at webit.de
Don Jan 8 06:45:55 CST 2004


"Jens Puruckherr" <jpuruckherr at cyberport.de> writes:
> @item = ($xsell =~  /(<Item>.*<\/Item>)/s);
> 
> matcht mir alles zwischen dem ersten und dem letzten Item auf einmal.
> Wie kann ich das ändern?

Die Eigenschaft, den längstmöglichen Ausdruck zu matchen, nennt sich
"greedy". Lies mal "man perlre" und such nach "greedy". Man kann da
mit einem `?` hinter "quantifiers" wie '*' das greedy beschränken.

Ich hab' das selbst noch nie probiert und kann grad keine souveräneren
Tips geben.


> PS. Es macht mittlerweile deutlich mehr Spass die XMLs per Hand zu
> zerlegen als son dickes DOM-Monster anzuwerfen.
> Und schneller und sparsamer ists obendrein :-)

SAX wäre noch eine Alternative. Nach bissel Eingewöhnung kommt
man da auch zurecht.

GreetinX
Steffen 
-- 
"When you pull out the pin, Mr. Grenade is no longer your friend."
  -- Sarge/Q3