← Back to team overview

sslug-teknik team mailing list archive

Re: PHP - preg_match virker ikke efter hensigten

 

Anders Sønderberg Mortensen wrote:
On Wed, 24 Nov 2004, Jesper Lund wrote:


Og nu til det svære. Hvorfor kommer $headline[1] til at se indeholde
"VarebeskrivelseIndholdPrisØkologisk" når den nu burde indeholde "Vare
Beskrivelse" og $headline[2] er bare tom. Det samme er $headline[3] og
så videre.



Det regulære udtryk /<th>(.*)<\/th>/ er grådigt, dvs. det matcher den
længst mulige streng. Hvis du vil matche minimalt, så kan du gøre flere
ting, f.eks.

/<th>(.*?)<\/th>/i

eller noget med

/<th>([^<]*)<\/th>/i

Husk at preg_match ikke automatisk matcher flere sekvenser af gangen. Her
skal du have fat i preg_match_all - check php manualen.

Du kan også slå grådighed fra med flaget 'U'.

Det vil måske også være en ide at sætte flaget 's' på din søgestreng, for ellers vil et linieskift i kilden resultere i at et felt ikke matcher alligevel. Normalt matcher . nemlig ikke på et linieskift.

Med venlig hilsen

Ole


References