Estoy buscando regex para validar nombres de host. Debe cumplir completamente con el estándar. En este momento, no tengoNombre de host Regex
^[0-9a-z]([0-9a-z\-]{0,61}[0-9a-z])?(\.[0-9a-z](0-9a-z\-]{0,61}[0-9a-z])?)*$
pero permite hypens sucesivas y nombres de host de más de 255 caracteres. Si la expresión regular perfecta es imposible, dígalo.
Edición/Aclaración: una búsqueda en Google no reveló que se trata de un problema resuelto (o comprobado insoluble). Quiero crear la expresión regular definitiva para que nadie tenga que escribir la suya propia. Si los dialectos importan, quiero una versión para cada uno en la que se pueda hacer esto.
No acepta dominios con seguimiento "." pero de lo contrario, funciona. – nicerobot
Solucionado. Me pregunto si la afirmación de longitud debería verificar si es 254 o menos excluyendo el punto final en lugar de solo verificar si es 255 o menos. De lo contrario, alguien a lo largo de la línea podría agregar el punto final a un nombre de host de longitud máxima y romperlo. – CannibalSmith
La \ b antes del guión impide que coincida con nombres de dominio internacionalizados válidos, p. xn--bcher-kva.ch. –