Вы находитесь на странице: 1из 13

2018

Expresión Regular
Para Validar un
Dirección IPv4
Instituto Tecnológico Superior del Occidente del Estado de
Hidalgo
Materia: Lenguajes Autómatas Grado: 6° Grupo: “A”

Ing. Sistemas Computacionales

Alumno: Yuli Esthefani Depsa Barcenas

Docente: Aline Pérez Matínez

Mixquiahuala de Juárez a 21 / 03/ 2018


Índice

Introducción ....................................................................................................................................... 2
Objetivo .............................................................................................................................................. 3
Marco Teórico ................................................................................................................................... 3
Expresiones Regulares ............................................................................................................... 3
Jflex................................................................................................................................................. 4
Dirección IP ................................................................................................................................... 5
Desarrollo........................................................................................................................................... 6
Conclusión ....................................................................................................................................... 11
Bibliografía ....................................................................................................................................... 12

1
Introducción

En este reporte se pretende explicar cómo se realizó una impresión regular para
validar una dirección IP.

Asimismo se pretende comprender el uso y la manera y como se puede resolver


una expresión regular.

Las expresiones regulares proporcionan un medio conciso y flexible para


identificar cadenas de texto que son de nuestro interés, como patrones o palabras,
caracteres particulares etc, para esto se utiliza un lenguaje formal que sirve para
examinar el texto e identificar las partes que coinciden con la especificación
proporcionada.

Para la realización de la expresión regular se utilizó Jflex, nos permite poder


verificar y comprender si nuestra expresión regular se ha hecho de la manera
correcta.

2
Objetivo

Crear una expresión regular que valide las direcciones IP, mediante el uso de jflex
para verificar si es correcta.

Marco Teórico
Expresiones Regulares
Las expresiones regulares son patrones utilizados para encontrar una determinada
combinación de caracteres dentro de una cadena de texto.

El objetivo de las expresiones regulares es representar todos los posibles


lenguajes definidos sobre un alfabeto Σ, en base a una serie de lenguajes
primitivos, y unos operadores de composición.

Dado un alfabeto Σ, las expresiones regulares sobre Σ se definen de forma


recursiva por las siguientes reglas:

1. Las siguientes expresiones son expresiones regulares primitivas:


•∅
•λ
• a, siendo a ∈ Σ.
2. Sean α y β expresiones regulares, entonces son expresiones regulares
derivadas:
• α+β (unión)
• α.β (o simplemente αβ) (concatenación)
• α* (cierre)
• (α)

3. No hay más expresiones regulares sobre Σ que las construidas mediante


estas reglas. Precedencia de los operadores:
 ()

3
 cierre
 . concatenación
 + unión

Para representar las expresiones regulares se utilizan algunos operadores que


están en la tabla 1.

Tabla 1. Caracteres de expresiones Regulares.

Jflex
Flex es una herramienta para generar escáneres: programas que reconocen
patrones léxicos en un texto. flex lee los ficheros de entrada dados, o la entrada
estándar si no se le ha indicado ningún nombre de fichero, con la descripción de
un escáner a generar. La descripción se encuentra en forma de parejas de
expresiones regulares y código C, denominadas reglas. flex genera como salida
un fichero fuente en C, `lex.yy.c', que define una rutina `yylex()'. Este fichero se
compila y se enlaza con la librería `-lfl' para producir un ejecutable. Cuando se
arranca el fichero ejecutable, este analiza su entrada en busca de casos de las
expresiones regulares. Siempre que encuentra uno, ejecuta el código C
correspondiente.

4
Dirección IP
IP significa “Internet Protocol” y es un número que identifica un dispositivo en una
red (un ordenador, una impresora, un router, etc…). Estos dispositivos al formar
parte de una red serán identificados mediante un número IP único en esa red. La
dirección IP está formada por 4 números de hasta 3 cifras separados por “.”
(punto).

5
Desarrollo
1. Al desarrollar la expresión regular se tomaron en cuenta los siguientes
puntos:

Iniciaremos con la estructura de nuestro analizador léxico Jflex Figura 1.

Fig. 1 Estructura Inicial JFlex

El primer cuarteto de la dirección IP no puede comenzar en 0.

 La dirección IP está formada por 4 números de hasta 3 cifras separados por “.”
(Punto).

 Los valores que pueden tomar estos números varían entre 0 y 255

2. Para poder comenzar tomamos el primer punto que es: El primer cuarteto
de la dirección IP no puede comenzar en 0.

Empezamos diciéndole al analizador sintáctico que encuentre el principio de la


cadena, es importante que al validar la IP deba comenzar exactamente con el
número del rango que le proporcionemos y que no tenga ningún otro carácter
inicial. Para esto Utilizamos (^).

 Para poder definir el primer octeto de la dirección IP asignamos rangos como


se muestra en la Figura 2:

Rango de 1-9 [1-9]

Rango de 10-99 [1-9][0-9]

Rango de 100-1991[0-9][0-9]

Rango de 200-2552[0-5][0-5]

6
Seguido de los rangos, se agregó un punto, para definir que sigue el siguiente
octeto.

Fig. 2 Octeto 1

3. Como los siguientes octetos tienen el mismo rango 0-255 agregamos las
mismas restricciones seguidas por un punto Fig. 3.

Rango de 0-9 [0-9]

Rango de 10-99 [1-9][0-9]

Rango de 100-1991[0-9][0-9]

Rango de 200-2552[0-5][0-5]

Definimos que la IP termine hasta el digito establecido, en donde no existan


otras letras u otros números extras se hace con el símbolo $.

Fig. 3 Octetos Restantes

La expresión Regular quedo de la siguiente manera Fig. 4:

Representación del Primer Octeto


Representación de los Octetos restantes

Fig. 4 Expresión Regular de una dirección IPv4

Inicio de la Línea Fin de la Línea

7
3. Por último se deberá probar si la expresión regular si es correcta:

Ejecutaremos dentro de la carpeta lib en jflex el ejecutable jflex-1.6.1, para


poder verificar si la sintaxis del código es correcta. Seleccionamos el archivo
donde está la expresión regular Figura 4.

Fig. 4 Verificación

Nos crea un archivo llamado Yylex.java, Figura 5.

Fig. 5 Archivo Yylex.java

 Ejecutamos la consola cmd, donde ejecutaremos el comando javac Yylex.java.

Nos creara un archivo Yylex.class, Fig. 6.

8
Fig. 6 Archivo Yylex.class

Creamos un archivo txt con las posibles cadenas que se comprobaran sin
pertenecen a la expresión regular dada, Figura 7.

Fig. 7 Archivo txt

Ejecutamos en la consola el comando java IP.txt, para ver que cadenas que
nos validara Figura 8.

9
Fig. 5 Comprobación

10
Conclusión

Al realizar una expresión regular radica precisamente en la flexibilidad de los


patrones, que pueden ser confrontados con cualquier palabra o cadena de texto
que tenga una estructura conocida.

Nuestro patrón puede estar formado por un conjunto de caracteres (un grupo de
letras, números o signos) o por meta caracteres que representan otros caracteres,
o permiten una búsqueda contextual.

Si sabemos cuál es la cadena exacta a buscar, no es necesario quebrarse con un


patrón complicado, podemos usar como patrón la exacta cadena que buscamos, y
así no habrá otra que de coincidencia.

11
Bibliografía
Alfredo, E. (2013). Expresiones Regulares. 16/02/18, de URJC.es Sitio web:
http://www.ia.urjc.es/grupo/docencia/automatas_itis/apuntes/capitulo7.pdf

Alfred Aho, Ravi Sethi and Jeffrey Ullman: Compilers: Principles, Techniques and
Tools; Addison-Wesley (1986) --Edición en castellano: Compiladores: Principios,
Técnicas y Herramientas, Addison-Wesley Iberoamericana, S.A. (1990). Describe
las técnicas de concordancia de patrones usadas por flex (autómata finito
determinista).

Xose, P. (2008). ¿Qué es el número IP? ¿Qué significa IP? ¿Qué es una dirección
IP?. 19/02/18, de blog.vermiip.es Sitio web: http://blog.vermiip.es/2008/03/11/que-
es-el-numero-ip-que-significa-ip/

12

Вам также может понравиться