Sancho: Lösungsvorschlag

Beitrag lesen

Hallo Axel,

Hier http://forum.de.selfhtml.org/archiv/2002/10/t26766/#m145935 ist übrigens noch so ein Ungetüm im Gespräch.

Danke für den neuen Hinweis - ich war in den PerlFaq9 schon mal über einen Link auf ein ähnliches 'Ungetüm' gestolpert:

http://www.cpan.org/authors/Tom_Christiansen/scripts/ckaddr.gz

(Der Regex ist unten anghängt.) Es war mir aber damals (und ist es heute immer noch) in der so geschriebenen Form zu sehr ein - Ungetüm eben, um es genauer zu analysieren.

Ich habe jetzt mal aus dem Regex, auf den Dein Link verweist, den Teil, der den Top-Level repräsentiert, isoliert:

(...)

a-zA-Z?

(...)

Das scheint es korrekt zu treffen; ist auch noch eleganter als mein Vorschlag, weil es eine bei mir noch vorhandene unötige Erwähnung von [a-zA-Z] ausspart.

(Ich hatte halt noch nahe an der RFC 'übersetzt':)

toplabel = alpha | alpha *( alphanum | "-" ) alphanum

Das einzige, was ich da noch zu 'bemäkeln' hätte, ist der fehlende optionale Endpunkt (dahinter 'steht' ja bekanntlich die 'root' aller Domains, reräsentiert durch einen leeren String). Dass das gängige Weglassen dieses Punktes eine - akzeptable, aber trotzdem: - Auslassung ist, könnte man in dem Regex ja noch zusätzlich repräsentieren; dann 'matcht' der Ausdruck auch die korrekte Angabe von beispielsweise

www.example.com.

Ist ja auch leicht als Option anhängbar:

a-zA-Z?.?

Jetzt fehlt allenfalls noch die numerische Einschränkung.
_Wenn_ die Begrenzung auf 63 Zeichen pro Label einbezogen werden soll, könnte man wohl noch folgendermaßen abwandeln:

a-zA-Z\d?).?

Das müßte jetzt eigentlich eine wirklich brauchbare (TLD-)Lösung sein, denke ich.

Was meinst Du?

Herzlich,

Sancho