Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Regex-String für gültige URL

212 views
Skip to first unread message

Dominik von Werdt

unread,
Jul 30, 2001, 6:26:06 AM7/30/01
to
Mahlzeit =)

Ich hab Google zu Rate gezogen, aber nichts brauchbares gefunden. Jemand von
euch hat doch sicher den RegEx-String für eine gültige URL (mit oder ohne
http://)???

Mit bestem Dank!

Dominik

--
"That's your problem!"
- Slobodan Milosevic in Den Haag


Andreas Schwarz

unread,
Jul 30, 2001, 9:39:59 AM7/30/01
to
"Dominik von Werdt" <vonw...@breakzone.cc> wrote:

> Mahlzeit =)
>
> Ich hab Google zu Rate gezogen, aber nichts brauchbares gefunden.
> Jemand von euch hat doch sicher den RegEx-String für eine gültige URL
> (mit oder ohne http://)???

Kurz und handlich;

$regexp = "^(https?://)"; // http://
$regexp .= "?(([0-9a-z_!~*'().&=+$%-]+:)?[0-9a-z_!~*'().&=+$%-]+@)?"; // username:password@
$regexp .= "(([0-9]{1,3}\.){3}[0-9]{1,3}"; // IP- 199.194.52.184
$regexp .= "|"; // allows either IP or domain
$regexp .= "([0-9a-z_!~*'()-]+\.)*"; // tertiary domain(s)- www.
$regexp .= "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\."; // second level domain
$regexp .= "[a-z]{2,6})"; // first level domain- .com or .museum
$regexp .= "(:[0-9]{1,4})?"; // port number- :80
$regexp .= "((/?)|"; // a slash isn't required if there is no file name
$regexp .= "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$"; // filename/queries/anchors

MfG
Andreas


--
www.mikrocontroller.net
AVR-Tutorial, Forum und Linkliste
Suchmaschine für 4800 Mikrocontrollerseiten

Dominik von Werdt

unread,
Jul 30, 2001, 2:12:47 PM7/30/01
to
> Kurz und handlich;

Vielen Dank, genau das hab ich gesucht. Und wieder 30 Minuten tüfteln
erspart =)

Gruss
Dominik

Bjoern Hoehrmann

unread,
Jul 31, 2001, 1:34:31 PM7/31/01
to
* Andreas Schwarz wrote in de.comp.lang.php:

>> Ich hab Google zu Rate gezogen, aber nichts brauchbares gefunden.
>> Jemand von euch hat doch sicher den RegEx-String für eine gültige URL
>> (mit oder ohne http://)???

Ohne http:// ist die URI aber nicht gültig.

>Kurz und handlich;
>
>$regexp = "^(https?://)"; // http://
>$regexp .= "?(([0-9a-z_!~*'().&=+$%-]+:)?[0-9a-z_!~*'().&=+$%-]+@)?"; // username:password@

Userinfo ist in HTTP URLs nicht gültig.

>$regexp .= "(([0-9]{1,3}\.){3}[0-9]{1,3}"; // IP- 199.194.52.184

Das erlaubt ungültige IP-Adressen, das verbietet wörtliche
IPv6-Adressen.

>$regexp .= "|"; // allows either IP or domain
>$regexp .= "([0-9a-z_!~*'()-]+\.)*"; // tertiary domain(s)- www.

Das erlaubt ungültige Hostnames, z.B. '!.'.

>$regexp .= "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\."; // second level domain
>$regexp .= "[a-z]{2,6})"; // first level domain- .com or .museum

Das verbietet viele gültige Hostnamen, z.b. foo.example.

>$regexp .= "(:[0-9]{1,4})?"; // port number- :80

Das verbietet gültige Port-Angaben.

>$regexp .= "((/?)|"; // a slash isn't required if there is no file name
>$regexp .= "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$"; // filename/queries/anchors

Fragmentbezeichner sind in HTTP URLs nicht erlaubt; du erlaubst Zeichen,
die so nicht im Pfad- oder Querybestandteil vorkommen dürfen.

Ich empfehle den regulären Ausdruck von Abigail, der ist zwar auch nicht
perfekt, aber im Vergleich hierzu eine wahre Wonne.
--
Björn Höhrmann { mailto:bjo...@hoehrmann.de } http://www.bjoernsworld.de
am Badedeich 7 } Telefon: +49(0)4667/981028 { http://bjoern.hoehrmann.de
25899 Dagebüll { PGP Pub. KeyID: 0xA4357E78 } http://www.learn.to/quote/

Dominik von Werdt

unread,
Jul 31, 2001, 4:41:08 PM7/31/01
to
> Ich empfehle den regulären Ausdruck von Abigail, der ist zwar auch nicht
> perfekt, aber im Vergleich hierzu eine wahre Wonne.

Wo krieg ich den her?

Gruss
Dominik


Bjoern Hoehrmann

unread,
Jul 31, 2001, 10:43:09 PM7/31/01
to
* Dominik von Werdt wrote in de.comp.lang.php:

>> Ich empfehle den regulären Ausdruck von Abigail, der ist zwar auch nicht
>> perfekt, aber im Vergleich hierzu eine wahre Wonne.
>
>Wo krieg ich den her?

Du glaubst wirklich, dass es so viele Leute gibt, die Abigail heissen
und reguläre Ausdrücke für URLs schreiben? Auf seiner Homepage.

Andreas Schwarz

unread,
Aug 2, 2001, 9:01:40 AM8/2/01
to
Bjoern Hoehrmann <bjo...@hoehrmann.de> wrote:

> * Andreas Schwarz wrote in de.comp.lang.php:
>

> Ich empfehle den regulären Ausdruck von Abigail, der ist zwar auch
> nicht perfekt, aber im Vergleich hierzu eine wahre Wonne.

Gut, deine Kritik ist berechtigt, für den Alltagsgebrauch (Blödsinnsangaben
aus Linklisten filtern) dürfte diese Regex jedoch völlig ausreichen.

Bjoern Hoehrmann

unread,
Aug 5, 2001, 8:01:53 PM8/5/01
to
* Andreas Schwarz wrote in de.comp.lang.php:
>Bjoern Hoehrmann <bjo...@hoehrmann.de> wrote:
>
>> * Andreas Schwarz wrote in de.comp.lang.php:
>>
>> Ich empfehle den regulären Ausdruck von Abigail, der ist zwar auch
>> nicht perfekt, aber im Vergleich hierzu eine wahre Wonne.
>
>Gut, deine Kritik ist berechtigt, für den Alltagsgebrauch (Blödsinnsangaben
>aus Linklisten filtern) dürfte diese Regex jedoch völlig ausreichen.

Er filtert gültige URIs heraus, damit ist der Reguläre Ausdruck ebenso
unbrauchbar wie einer für Emailadressen, der
"bjoern hoehrmann"@websitedev.de nicht als gültig anerkennen will.

0 new messages