Thread Bedingung in Regexp (4 answers)
Opened by roooot at 2009-04-25 15:11

sid burn
 2009-04-26 16:25
#120926 #120926
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
2009-04-25T16:49:39 roooot
Danke erstmal, aber jetzt habe ich ein neues Problem:
Code (perl): (dl )
/^http:\/\/([^/]+\.)?([a-z0-9-]+\.[a-z]{2,5})(/.*)?$/
trifft wunderbar alle Domains bis auf die, in denen es 2 TLD gibt. Beispielsweise .co.uk oder .de.vu. Dort habe ich den Fall, dass statt der Domain foo.de.vu nur die TLDs gespeichert werden, beispielsweise .de.vu.

Wie kann ich das umgehen?

In einer Domain gibt es keine zwei TLD. Die TLD ist entweder ".vu" oder ".uk" das war es. Bei ".de.vu" ist "de" eine domain von ".vu" und "co" ist eine domain von ".uk"

Ansonsten wenn du nur die Domains haben willst weiß ich nicht warum du nicht einfach das vorhandene URI Modul nutzt?

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use URI;

while ( my $url = <DATA> ) {
    my $uri = URI->new($url);
    print $uri->host, "\n";
}

__DATA__
http://www.example.com/foo/bar
http://www.foo.de/blubb
http://www.foo.de
http://bar.de/boing
http://bar.de
http://www.foo.de.vu/blubb
http://foo.de.vu/didumm
http://foo.de.vu
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread Bedingung in Regexp