seth: Regex Anfängerfrage

Beitrag lesen

gudn tach!

oops, da hab ich versehentlich wohl mal wieder die vorschau nicht bestaetigt. also noch mal...

<link>http://unwichtigerlink</link>

<title>1. Titel</title>
<link>http://xxx.de/1</link>
<comments>http://xxx.de/#comments</comments>
<pubDate>Tue, 25 Jun 2007 02:06:48</pubDate>

<link>http://unwichtigerlink</link>
<link>http://unwichtigerlink</link>

<title>2. Titel</title>

<link>http://xxx.de/2</link>
<comments>http://xxx.de/#comments</comments>

$pattern = '#<title()*>(.*)#imsU';
Das zeigt mir ja schön schön die title,

nein, zumindest nicht unter der verwendung von preg_match_all, denn damit wuerdest du nur die tags "<title>" und ein paar leere strings bekommen.

besser:
  #<title>(.*?)<#is
oder
  #(?<=<title>).*?(?=</title>)#is

aber wenn ich nun auch noch
die links haben will, und zwar genau die auf </title> folgen, dann weiss ich nicht weiter.

#<title>(.*?)</title>(?:\s*<link>(.*?)</link>)?#is

falls nur der erste darauffolgende link wichtig ist. und

#<title>(.*?)</title>(?:\s*<link>(.*?)</link>)*#is

falls auch mehrere hintereinander gematcht werden sollen.

prost
seth