Leser: 1
|< 1 2 >| | 19 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
if($dat =~ /<a+[\s]+href+=+([\w])+>/i)
| | | | |
mehrere "a" | | | |
mehrere whitespaces | | |
mehrere "f" | |
mehrere "=" |
mehrere \w
dieser string würde also matchen:
"<aaa hreffff====abcde>"
[E|B,07.09.2003, 15:01]
1
2
3
4
5
6
7
8
9
< # Eine spitze Klammer auf
a+ # Eine Folge von einem oder mehr 'a's
[\s]+ # Eine Folge von einem oder mehr Zeichen aus der Menge [\s], d.h. Whitespace
href+ # Die Buchstabenfolge 'hre', gefolgt von einem oder mehr 'f's
=+ # Eine Folge von einem oder mehr Gleichheitszeichen
([\w])+ # Eine Folge von einem oder mehr Zeichen aus der Menge [\w], also Wortzeichen
# Das sind A-Z, a-z und '_'.
# Jedes einzelne Zeichen wird in einem der Speicher $1, $2, etc. gemerkt
> # Eine spitze Klammer zu
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
if ($date =~ / <a # spitze Klammer auf und 'a' \s+ # Eine Folge von einem oder mehr Whitespacezeichen href # Der Text 'href' \s* # Eine Folge von keinem oder mehr Whitespacezeichen = # Ein Gleichheitszeichen \s* # Eine Folge von keinem oder mehr Whitespacezeichen " # Ein Anfuehrungszeichen ([^"]+) # Eine Folge von einem oder mehr Zeichen, die kein Anfuehrungszeichen sind. # Die Folge wird sich in $1 gemerkt. " # Ein Anfuehrungszeichen \s* # Eine Folge von keinem oder mehr Whitespacezeichen > # Eine spitze Klammer zu /xi # Ende der Regex; Kommentare erlauben und ignore-case einschalten ) [...]
1 2 3 4 5 6 7
my $link=''; if($dat =~ /<a\s+href=("[^"]+"|[^ >]+)(?:\s+[a-z]+=(?:"[^"]+"|[^ >]+))*>/i) { $link=$1; $link=$1 if $link=~m#^"(.*)"$#; print "Link $link gefunden"; }
if($dat =~ /<a(?:\s+[a-z]+=(?:"[^"]+"|[^ >]+))*\s+href=("[^"]+"|[^ >]+)(?:\s+[a-z]+=(?:"[^"]+"|[^ >]+))*>/i)
|< 1 2 >| | 19 Einträge, 2 Seiten |