Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo utilizar expresiones regulares para hacer coincidir direcciones IP y nombres de dominio

Cómo utilizar expresiones regulares para hacer coincidir direcciones IP y nombres de dominio

Sabemos que un nombre de dominio completo se compone de dominio raíz, dominio de nivel superior, nombres de dominio de segundo nivel y de tercer nivel, y cada nivel de nombre de dominio está separado por puntos, y cada nivel de El nombre de dominio consta de letras, números y consta de un signo menos (la primera letra no puede ser un signo menos), no distingue entre mayúsculas y minúsculas y la longitud no excede 63.

Un solo nombre puede coincidir con la expresión regular [a-zA-Z0-9][-a-zA-Z0-9]{0,62}, y el nombre de dominio completo incluye al menos dos El nombre (como google.com, compuesto por google y com), puede tener un punto que indica el dominio raíz al final (en la especificación, el nombre de dominio con un punto al final es el nombre de dominio completo, pero Generalmente se considera que los nombres de dominio que incluyen más de dos nombres también son nombres de dominio completos, incluso si no van seguidos de un punto).

Expresión regular que coincide con el nombre de dominio completo:

[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[ a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?Una cadena IP consta de cuatro segmentos, cada segmento es un número del 0 al 255, segmento y segmento Separados ellos con puntos decimales. Por ejemplo, 61.139.2.69 es una cadena de IP legal.

Si la expresión regular se escribe como \d{1,3}(\.\d{1,3}){3}, es sin duda irresponsable, porque puede coincidir con IP ilegales como 300.400 Cuerda .555.666.

Para hacer coincidir un número entre 0 y 255, existen varios métodos de coincidencia. El siguiente es uno de ellos:

Instrucciones para hacer coincidir expresiones regulares

0 ~. 9 \d Número único

10~99 [1-9]\d Número de dos dígitos

100~199 1\d\d Número de tres dígitos con centenas como 1

200~249 2[0-4]\d Tres dígitos, el dígito de las centenas es 2 y el dígito de las decenas es 0~9

250~255 25[0-5] Número de tres dígitos, el lugar de las centenas es 2, el lugar de las decenas es 5 y el lugar de las unidades es 0~5

Escríbalo como una expresión regular, es decir: (\d|([1-9 ]\d)|(1\d \d)|(2[0-4]\d)|(25[0-5])), pero cuando dicha expresión regular coincide con una cadena como 254, coincidirá con 2 , 5 y 4 respectivamente, y obtenemos 3 coincidencias no pueden lograr el efecto esperado. La forma correcta es invertir el orden como ((25[0-5])|(2[0-4]\d)|(1. \d\d)|([1- 9]\d)|\d), porque en el comportamiento de coincidencia de (xxx|yyy), la búsqueda es de izquierda a derecha.

La expresión regular completa es:

((25[0-5])|(2[0-4]\d)|(1\d\d)| ( [1-9]\d)|\d)(\.((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9 ] \d)|\d)){3}Presione:

Números como 061 con un bit de orden superior de 0 no pueden coincidir.

Por lo tanto, la forma de escribir en la parte superior (Parte 1.) es la versión correcta y completa, mientras que la forma de escribir (Parte 2.) es más unilateral

Creo que lo domina después de leer estos casos. Método. Para obtener más información interesante, preste atención a otros artículos relacionados en Gxl.com.

Lectura relacionada:

Cómo utilizar expresiones regulares para resaltar código JavaScript

Introducción a ejemplos de validación de formularios de expresiones regulares

Cómo use expresiones regulares para hacer coincidir números de teléfono y direcciones de correo electrónico