Domain als regulärer Ausdruck
-
Hi!
Eine Domain ist folgendermaßen ausgebaut:<domain> ::= <subdomain> | " " <subdomain> ::= <label> | <subdomain> "." <label> <label> ::= <letter> [ [ <ldh-str> ] <let-dig> ] <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str> <let-dig-hyp> ::= <let-dig> | "-" <let-dig> ::= <letter> | <digit> <letter> ::= any one of the 52 alphabetic characters A through Z in upper case and a through z in lower case <digit> ::= any one of the ten digits 0 through 9
Und das gilt es als regulären Ausdruck umzusetzen. Ich habe eigentlich wenig Ahnung davon, aber hier mein Ansatz:
<digit> ::= [0-9] <letter> ::= [a-zA-Z] <let-dig> ::= [0-9] | [a-zA-Z] <let-dig-hyp> ::= ([0-9] | [a-zA-Z]) | "_" <ldh-str> ::= (([0-9] | [a-zA-Z]) | "_"){1,}
Aber weiter komme ich dann auch nicht, bzw. weiß ich auch nicht, ob das bis jetzt richtig ist.
mfg olli
-
Wie genau muss es denn sein?
([a-z0-9][a-z0-9-]*\.)*[a-z0-9][a-z0-9-]*\.[a-z]+ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ subdomains ^^^^^^^^^^^^^^^^^^ tld domain
Und vergiss nicht, dass es inzwischen auch IDN-Domains gibt.
-
Vielen Dank auch für den Hinweis!
IDNA-Domains validiert der reguläre Ausdruck jedoch. Ich habe mal das Beispiel von Wiki getestet, und er gibt grünes Licht bei "www.äaa.de".
mfg olli
-
Ich meinte auch eigentlich nicht die Punycode-Schreibweise, sondern z.b. "www.müller.de"