phpbar.de logo

Mailinglisten-Archive

[php] problem mit regex/preg_match

[php] problem mit regex/preg_match

Marco Schumann php_(at)_phpcenter.de
Tue, 15 Oct 2002 16:19:09 +0200


Jochen Metzger wrote:
> Hi ho,
> 
> warum finde ich mit folgendem Code nur den letzten Ausdruck und nicht den
> ersten?
> 
> <?php
> $string='blabla <a href="test1.html?say=first" class="good">test1</a>'.
>         'gogogo <a href="test2.html?say=second" class="bad">test2</a>';
> 
> /* get rid of all newlines */
> $string=preg_replace("/\\n/","",$string);
> 
> /* - i -> case insensitive */
> preg_match("/\<a.*href\=([^> ]*)[^>]*\>(.*)\<\/a\>/i",$string,$t_match);
> 
> print "<pre>matched";
> print_r ($t_match);
> print "</pre>";
> ?>
> 
> Grüße
> 
> Jochen

du matchst das erste <a, dann beliebig viele irgendwelche Zeichen, dann 
das letzte href, weil ja vorher '.*' steht, das müsste man durch ein 
'[^>]' ersetzen. Außerdem müsste das '>(.*)<' durch '>([^<>]*)<' ersetzt 
werden. Spannend wird es, wenn Du alle href's haben willst...

-- 

Mit freundlichen Grüßen

Marco Schumann
united-domains AG

Tel.: 0 81 51 / 3 68 67 - 0
Fax: 0 81 51 / 3 68 67 - 77

http://www.united-domains.de
mailto:schumann_(at)_united-domains.de


php::bar PHP Wiki   -   Listenarchive