SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
Expresiones Regulares
Guía Nº 4
Validación
1
GUÍA Nº 4 EXPRESIONES REGULARES
IDENTIFICACIÓN DE LA ASIGNATURA
Facultad de Estudios a Distancia - FESAD ESCUELA: Ciencias Tecnológicas
Programa: Tecnólogo en programación de Sistemas Informáticos
Asignatura/Unidad: Programación ll
Nombre de la actividad: Expresiones complejas en Programación
Objetivo de la temática: Conocer la forma práctica de validar cadenas de caracteres,
para diferentes tipos datos de que ofrece java.
Docente-Tutor: Ing. Josué Nicolás Pinzón Villamil
Expresiones regulares
Objetivos Específicos
• Conocer las expresiones regulares y observar la utilidad que prestan a la hora de
validar los datos de una aplicación.
• Conocer la simbología que se utiliza para formar una expresión regular.
¿Qué es una expresión regular?
Una expresión regular, a menudo llamada también patrón, es un término que describe un conjunto
de cadenas sin enumerar sus elementos. Por ejemplo, el grupo formado por las cadenas Handel,
Händel y Haendel se describe mediante el patrón "H(a|ä|ae)ndel". La mayoría de las
formalizaciones proporcionan los siguientes constructores: una expresión regular es una forma de
representar a los lenguajes regulares (finitos o infinitos) y se construye utilizando caracteres del
Expresiones Regulares
Guía Nº 4
Validación
2
alfabeto sobre el cual se define el lenguaje. Específicamente, las expresiones regulares se
construyen utilizando los operadores unión, concatenación y clausura de Kleene1
.[1]
Para conocer más sobre este tema, leer en [1] donde se encuentra la nomenclatura para construir
una expresión regular.
Algunos ejemplos de expresiones regulares son:
[0-9] ó d Acepta solo caracteres que contengan números.
[A-Z] Acepta solo caracteres en mayúscula.
^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,3})+$
Esta expresión es útil cuando se necesita validar el correo electrónico.
[a-zA-Z]+ [0-9] ó w Acepta solo caracteres alfanuméricos
Ahora se va a poner en práctica las expresiones regulares con el siguiente ejercicio:
Se desea desarrollar una aplicación donde se pueda evaluar una cadena de texto e indique si
pertenece a una determinada expresión regular, los patrones a utilizar son: tipo numérico,
alfabético, alfanumérico y validación de un correo electrónico.
Con base a lo anterior se obtiene los siguientes diagramas para el GUI y el negocio:
GUI
1
En lógica matemática y en ciencias de la computación, la clausura de Kleene (también llamada estrella Kleene
o cierre estrella) es una operación unaria que se aplica sobre un conjunto de cadenas de caracteres o un
conjunto de símbolos o caracteres (alfabeto), y representa el conjunto de las cadenas que se pueden formar
tomando cualquier número de cadenas del conjunto inicial, posiblemente con repeticiones, y
concatenándolas entre sí.[2]
Expresiones Regulares
Guía Nº 4
Validación
3
Negocio
class GUI
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V
Eventos
+ ACEPTAR: String = "Aceptar" {readOnly}
+ ALFABETICA: String = "Alfabética" {readOnly}
+ ALFANUMERICA: String = "Alfanumérica" {readOnly}
+ CORREO: String = "e-mail" {readOnly}
+ LIMPIAR: String = "Limpiar" {readOnly}
+ NUMERICA: String = "Numérica" {readOnly}
- ventana: VentanaPrincipal
+ actionPerformed(ActionEvent) : void
+ Eventos(VentanaPrincipal)
PanelExpresion
- opciones: JRadioButton ([])
- textExpresionEvaluar: JTextField
+ getTextoEvaluar() : String
+ PanelExpresion(Eventos)
+ setTextoEvaluar(String) : void
VentanaPrincipal
- buttonAceptar: JButton
- buttonLimpiar: JButton
- eventos: Eventos
- expresion: Expresion
- panel: PanelExpresion
- titleExpresion: JLabel
+ activarAccionAlfabetica() : void
+ activarAccionAlfanumerica() : void
+ activarAccionCorreo() : void
+ activarAccionLimpiar() : void
+ activarAccionNumerica() : void
+ actualizarTitulo() : void
+ evaluarExpresion() : void
+ main(String[]) : void
+ VentanaPrincipal()
JPanel
JFrame
ActionListener
-ventana
-panel
-eventos
Expresiones Regulares
Guía Nº 4
Validación
4
Al realizar el código de la GUI se obtiene la siguiente ventana:
class negocio
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA
Expresion
+ EXPRESION_ALFABETICA: String = "[a-zA-Z]" {readOnly}
+ EXPRESION_ALFANUMERICA: String = "[a-zA-Z]+[0-9]" {readOnly}
+ EXPRESION_CORREO: String = "^w+([.-]?... {readOnly}
+ EXPRESION_NUMERO: String = "[0-9]" {readOnly}
- tipo: int
+ TIPO_ALFABETICA: int = 0 {readOnly}
+ TIPO_ALFANUMERICA: int = 2 {readOnly}
+ TIPO_CORREO: int = 3 {readOnly}
+ TIPO_NUMERO: int = 1 {readOnly}
+ getTipo() : int
+ setTipo(int) : void
+ validarExpresion(String) : boolean
Expresiones Regulares
Guía Nº 4
Validación
5
La parte que realmente interesa es la del negocio donde se va explicar cómo se realizó el código.
Las siguientes imágenes muestra el desarrollo del diagrama de clases propuesto:
Expresiones Regulares
Guía Nº 4
Validación
6
Expresiones Regulares
Guía Nº 4
Validación
7
Como se observa se decidió dividir en constantes los diferentes tipos de expresiones, de este modo
permite un manejo más eficiente a la hora de evaluar una cadena, por este motivo fue que se
escogió una estructura tipo swich, la cual permite seleccionar el código a utilizar según el cada caso
y depende de un numero de selección.
Por otro lado se va analizar cada una de las expresiones y como es su sintaxis:
Expresión alfabética: [a-zA-Z]+
Significa que cada carácter evaluado con esta expresión debe estar dentro del lenguaje para este
caso el lenguaje a seguir son las letras minúsculas de la a hasta z, mas las letras en mayúsculas de
la A hasta la Z. Esto es lo definido dentro de los corchetes cuadrado [], ahora el símbolo(+) significa
que puede evaluar más de una carácter es decir una cadena de caracteres.
Expresión Numérica: [0-9]+
Tomando el mismo principio que el anterior el lenguaje de esta expresión está definido entre los
números de 0 al infinito, pero enteros positivos.
Expresión Alfanumérica: [a-zA-Z]+ [0-9]+
Esta expresión une los lenguajes de la expresión alfabética y la numérica, pero con la condición que
la cadena a evaluar al menos el primer carácter de la cadena sea una letra y el segundo un número,
por ejemplo: a1, ea3, shfjkfsdgfhfj3, q325456346.
Expresión correo electrónico:
^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,3})+$
Esta expresión es una combinación de la nomenclatura de las expresiones regulares para Java, esta
indica con (^) que necesariamente la cadena debe comenzar con caracteres alfanuméricos sin
importar su orden (w), el símbolo (+) carácter anterior uno o más veces, ahora [ .-]? Significa
que puede ir solo una vez, ya sea punto o guion, pero es opcional. Con respecto al paréntesis que
termina con * indica que ese tramo de expresión puede repetirse cero a n-veces, luego
encontramos el símbolode @ seguidodemás cadenas alfanuméricas y punto, en la parte de w{2,3}
está diciendo que esa parte de la cadena debe contener mínimo 2 y máximo 3 caracteres y por
último el símbolo de $ significa que es el final de la cadena.
Expresiones Regulares
Guía Nº 4
Validación
8
Entendiendo cómo funcionan las expresiones regulares, ahora observemos que métodos invoca
Java para evaluar las expresiones, existen dos formas de realizar esta validación la primera opción
la brinda un método de la clase String con el método matches (String par), que recibe como
parámetro el patrón con el cual se va a evaluar, para nuestro caso este fue el método utilizado. La
segunda opción es utilizar directamente la librerías Pattern y Matcher [3], visualicemos como
funciona estas dos librerías.
Primero importa las librerías.
Segundo crear los objetos de las dos clases como en el siguiente método:
Expresiones Regulares
Guía Nº 4
Validación
9
Expresiones Regulares
Guía Nº 4
Validación
10
Bibliografía
[1] Expresión regular. (2020). Recuperado 29 March 2020, en
https://es.wikipedia.org/wiki/Expresi%C3%B3n_regular
[2] Clausura de Kleene. (2020). Recuperado 29 March 2020, en
https://es.wikipedia.org/wiki/Clausura_de_Kleene
[3] Java Platform SE 6. (2015). Recuperado 29 March 2020, en
https://docs.oracle.com/javase/6/docs/api/
[4] perfil, V. (2013). Validación con expresiones regulares y Javascript. Retrieved
29 March 2020, from http://maestrojavascript.blogspot.com/2013/10/validacion-
con-expresiones-regulares-y.html
Expresiones Regulares
Guía Nº 4
Validación
11
CONTROL DE CAMBIOS
Fecha Observación Autor
28/04/2020
Se crea guía Nº 4, sobre expresiones
regulares
Mg. Josué Nicolás
Pinzón Villamil

Más contenido relacionado

La actualidad más candente

2 interfaces graficas_de_usuario (1)
2 interfaces graficas_de_usuario (1)2 interfaces graficas_de_usuario (1)
2 interfaces graficas_de_usuario (1)ElielMauricioEscobar
 
Asegúr@IT 7: Serialized SQL Injection
Asegúr@IT 7: Serialized SQL InjectionAsegúr@IT 7: Serialized SQL Injection
Asegúr@IT 7: Serialized SQL InjectionChema Alonso
 
Programación con C/AL para Microsoft Business Solutions Navision
Programación con C/AL para Microsoft Business Solutions NavisionProgramación con C/AL para Microsoft Business Solutions Navision
Programación con C/AL para Microsoft Business Solutions Navisionpabloesp
 
Informe compilador divisor
Informe compilador divisorInforme compilador divisor
Informe compilador divisorSoraya Lara
 
GUÍA RÁPIDA LENGUAJE C/AL
GUÍA RÁPIDA LENGUAJE C/ALGUÍA RÁPIDA LENGUAJE C/AL
GUÍA RÁPIDA LENGUAJE C/ALmakac0 makac0
 
Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...
Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...
Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...Diego Paúl Cuenca Quezada
 
Estructura de un programa en c
Estructura de un programa en cEstructura de un programa en c
Estructura de un programa en cMary Guaman
 
Administracion de-sistemas-operativos apuntes-v2-4
Administracion de-sistemas-operativos apuntes-v2-4Administracion de-sistemas-operativos apuntes-v2-4
Administracion de-sistemas-operativos apuntes-v2-4Juan Timoteo Cori
 
Arreglos Turbo C
Arreglos Turbo CArreglos Turbo C
Arreglos Turbo Ctacubomx
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcionalJuan Rodríguez
 
2. Introduccion Programabilidad Arquitectura IOT
2. Introduccion Programabilidad Arquitectura IOT2. Introduccion Programabilidad Arquitectura IOT
2. Introduccion Programabilidad Arquitectura IOTDavid Narváez
 
Introducción a la programación en Python
Introducción a la programación en PythonIntroducción a la programación en Python
Introducción a la programación en PythonCodeSyntax
 

La actualidad más candente (20)

Presentación1vhdl
Presentación1vhdlPresentación1vhdl
Presentación1vhdl
 
2 interfaces graficas_de_usuario (1)
2 interfaces graficas_de_usuario (1)2 interfaces graficas_de_usuario (1)
2 interfaces graficas_de_usuario (1)
 
2. Introduccion A C#
2.  Introduccion A C#2.  Introduccion A C#
2. Introduccion A C#
 
10. Herencia
10.  Herencia10.  Herencia
10. Herencia
 
Asegúr@IT 7: Serialized SQL Injection
Asegúr@IT 7: Serialized SQL InjectionAsegúr@IT 7: Serialized SQL Injection
Asegúr@IT 7: Serialized SQL Injection
 
Curso prog sist
Curso prog sistCurso prog sist
Curso prog sist
 
Programación con C/AL para Microsoft Business Solutions Navision
Programación con C/AL para Microsoft Business Solutions NavisionProgramación con C/AL para Microsoft Business Solutions Navision
Programación con C/AL para Microsoft Business Solutions Navision
 
3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP
 
Informe compilador divisor
Informe compilador divisorInforme compilador divisor
Informe compilador divisor
 
GUÍA RÁPIDA LENGUAJE C/AL
GUÍA RÁPIDA LENGUAJE C/ALGUÍA RÁPIDA LENGUAJE C/AL
GUÍA RÁPIDA LENGUAJE C/AL
 
Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...
Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...
Analizador Léxico y Sintáctico para Compilador que Invierte Cadenas utilizand...
 
Estructura de un programa en c
Estructura de un programa en cEstructura de un programa en c
Estructura de un programa en c
 
Tarea pagweb
Tarea pagwebTarea pagweb
Tarea pagweb
 
Administracion de-sistemas-operativos apuntes-v2-4
Administracion de-sistemas-operativos apuntes-v2-4Administracion de-sistemas-operativos apuntes-v2-4
Administracion de-sistemas-operativos apuntes-v2-4
 
Arreglos Turbo C
Arreglos Turbo CArreglos Turbo C
Arreglos Turbo C
 
Flex bison
Flex bisonFlex bison
Flex bison
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional
 
2. Introduccion Programabilidad Arquitectura IOT
2. Introduccion Programabilidad Arquitectura IOT2. Introduccion Programabilidad Arquitectura IOT
2. Introduccion Programabilidad Arquitectura IOT
 
TALLER FLEX Y BISON
TALLER FLEX Y BISONTALLER FLEX Y BISON
TALLER FLEX Y BISON
 
Introducción a la programación en Python
Introducción a la programación en PythonIntroducción a la programación en Python
Introducción a la programación en Python
 

Similar a Prog ii excepciones_guia_04

Fundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmosFundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmosEdward Ropero
 
Operadores y Expresiones
Operadores y ExpresionesOperadores y Expresiones
Operadores y ExpresionesCarlos Pes
 
Capítulo ii elementos java
Capítulo ii elementos javaCapítulo ii elementos java
Capítulo ii elementos javasaimaga30
 
Lógica y Algoritmos 2. Datos y Algoritmos
Lógica y Algoritmos 2. Datos y AlgoritmosLógica y Algoritmos 2. Datos y Algoritmos
Lógica y Algoritmos 2. Datos y AlgoritmosEdward Ropero
 
Quiero hacer ágil, ¿y ahora qué: Java, Ruby o Scala?
Quiero hacer ágil, ¿y ahora qué: Java, Ruby o Scala?Quiero hacer ágil, ¿y ahora qué: Java, Ruby o Scala?
Quiero hacer ágil, ¿y ahora qué: Java, Ruby o Scala?Agile Spain
 
Lenguajecviviana
LenguajecvivianaLenguajecviviana
Lenguajecvivianavivicamba
 
Estructura general del programa
Estructura general del programaEstructura general del programa
Estructura general del programaRubén Peña
 
Tecnica de Prueba de Software
Tecnica de Prueba de SoftwareTecnica de Prueba de Software
Tecnica de Prueba de Softwarejose_torres123
 
Introduccion Java
Introduccion JavaIntroduccion Java
Introduccion Javasvhurtado
 
37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacionkarenyulithza
 
Fundamentos De Algoritmia
Fundamentos De AlgoritmiaFundamentos De Algoritmia
Fundamentos De Algoritmiacckokyco
 
Descripción del lenguaje red
Descripción del lenguaje redDescripción del lenguaje red
Descripción del lenguaje redRichard Padilla
 

Similar a Prog ii excepciones_guia_04 (20)

Fundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmosFundamentos de programación 1. diseño de algoritmos
Fundamentos de programación 1. diseño de algoritmos
 
Operadores y Expresiones
Operadores y ExpresionesOperadores y Expresiones
Operadores y Expresiones
 
Capítulo ii elementos java
Capítulo ii elementos javaCapítulo ii elementos java
Capítulo ii elementos java
 
Lógica y Algoritmos 2. Datos y Algoritmos
Lógica y Algoritmos 2. Datos y AlgoritmosLógica y Algoritmos 2. Datos y Algoritmos
Lógica y Algoritmos 2. Datos y Algoritmos
 
Quiero hacer ágil, ¿y ahora qué: Java, Ruby o Scala?
Quiero hacer ágil, ¿y ahora qué: Java, Ruby o Scala?Quiero hacer ágil, ¿y ahora qué: Java, Ruby o Scala?
Quiero hacer ágil, ¿y ahora qué: Java, Ruby o Scala?
 
Informe 21
Informe 21Informe 21
Informe 21
 
Informe 21
Informe 21Informe 21
Informe 21
 
Lenguajecviviana
LenguajecvivianaLenguajecviviana
Lenguajecviviana
 
fp_p4.pdf
fp_p4.pdffp_p4.pdf
fp_p4.pdf
 
Estructura general del programa
Estructura general del programaEstructura general del programa
Estructura general del programa
 
Tecnica de Prueba de Software
Tecnica de Prueba de SoftwareTecnica de Prueba de Software
Tecnica de Prueba de Software
 
Introduccion Java
Introduccion JavaIntroduccion Java
Introduccion Java
 
37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacion
 
01 el lenguaje Python
01 el lenguaje Python01 el lenguaje Python
01 el lenguaje Python
 
Tipos de datos en C
Tipos de datos en CTipos de datos en C
Tipos de datos en C
 
Fundamentos De Algoritmia
Fundamentos De AlgoritmiaFundamentos De Algoritmia
Fundamentos De Algoritmia
 
Descripción del lenguaje red
Descripción del lenguaje redDescripción del lenguaje red
Descripción del lenguaje red
 
Progra
PrograProgra
Progra
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
Ayudantia 1
Ayudantia 1Ayudantia 1
Ayudantia 1
 

Más de Universidad Pedagógica y Tecnológica de Colombia

Más de Universidad Pedagógica y Tecnológica de Colombia (19)

Prog i estructura_datos_guia_3
Prog i estructura_datos_guia_3Prog i estructura_datos_guia_3
Prog i estructura_datos_guia_3
 
Fun estructuras basicas_programacion_guia_2
Fun estructuras basicas_programacion_guia_2Fun estructuras basicas_programacion_guia_2
Fun estructuras basicas_programacion_guia_2
 
Programacion_II_Interfaz_grafica_guia_I
Programacion_II_Interfaz_grafica_guia_IProgramacion_II_Interfaz_grafica_guia_I
Programacion_II_Interfaz_grafica_guia_I
 
Programacion_II_04_disposicion_contenedores
Programacion_II_04_disposicion_contenedoresProgramacion_II_04_disposicion_contenedores
Programacion_II_04_disposicion_contenedores
 
Programacion_II_300_contenedores_graficos
Programacion_II_300_contenedores_graficosProgramacion_II_300_contenedores_graficos
Programacion_II_300_contenedores_graficos
 
Programacion_II_introduccion_GUI
Programacion_II_introduccion_GUIProgramacion_II_introduccion_GUI
Programacion_II_introduccion_GUI
 
Programacion_II_jerarquia_gui
Programacion_II_jerarquia_guiProgramacion_II_jerarquia_gui
Programacion_II_jerarquia_gui
 
Fun_02_estructura_programa
Fun_02_estructura_programaFun_02_estructura_programa
Fun_02_estructura_programa
 
Fun_01_fundamentacion_objetos
Fun_01_fundamentacion_objetosFun_01_fundamentacion_objetos
Fun_01_fundamentacion_objetos
 
Fun programacion-204-operadores-logicos
Fun programacion-204-operadores-logicosFun programacion-204-operadores-logicos
Fun programacion-204-operadores-logicos
 
Fun programacion-203-operador-relacionales
Fun programacion-203-operador-relacionalesFun programacion-203-operador-relacionales
Fun programacion-203-operador-relacionales
 
Fun programacion-202-operador-aritmetico
Fun programacion-202-operador-aritmeticoFun programacion-202-operador-aritmetico
Fun programacion-202-operador-aritmetico
 
Fun programacion-200-pseducodigo-diagramas
Fun programacion-200-pseducodigo-diagramasFun programacion-200-pseducodigo-diagramas
Fun programacion-200-pseducodigo-diagramas
 
Fun-programacion-201-Elementos-pseducodigo
Fun-programacion-201-Elementos-pseducodigoFun-programacion-201-Elementos-pseducodigo
Fun-programacion-201-Elementos-pseducodigo
 
Fun programacion-00-introduccion-algoritmos
Fun programacion-00-introduccion-algoritmosFun programacion-00-introduccion-algoritmos
Fun programacion-00-introduccion-algoritmos
 
Fun programacion-000-logica-programacion
Fun programacion-000-logica-programacionFun programacion-000-logica-programacion
Fun programacion-000-logica-programacion
 
Fun programacion-003-pensamiento-lateral
Fun programacion-003-pensamiento-lateralFun programacion-003-pensamiento-lateral
Fun programacion-003-pensamiento-lateral
 
Fun programacion-002-tipos-pensamiento-logico
Fun programacion-002-tipos-pensamiento-logicoFun programacion-002-tipos-pensamiento-logico
Fun programacion-002-tipos-pensamiento-logico
 
Fun programacion-01-concepto-programacion-computadores
Fun programacion-01-concepto-programacion-computadoresFun programacion-01-concepto-programacion-computadores
Fun programacion-01-concepto-programacion-computadores
 

Último

TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfDemetrio Ccesa Rayme
 

Último (20)

TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
 

Prog ii excepciones_guia_04

  • 1. Expresiones Regulares Guía Nº 4 Validación 1 GUÍA Nº 4 EXPRESIONES REGULARES IDENTIFICACIÓN DE LA ASIGNATURA Facultad de Estudios a Distancia - FESAD ESCUELA: Ciencias Tecnológicas Programa: Tecnólogo en programación de Sistemas Informáticos Asignatura/Unidad: Programación ll Nombre de la actividad: Expresiones complejas en Programación Objetivo de la temática: Conocer la forma práctica de validar cadenas de caracteres, para diferentes tipos datos de que ofrece java. Docente-Tutor: Ing. Josué Nicolás Pinzón Villamil Expresiones regulares Objetivos Específicos • Conocer las expresiones regulares y observar la utilidad que prestan a la hora de validar los datos de una aplicación. • Conocer la simbología que se utiliza para formar una expresión regular. ¿Qué es una expresión regular? Una expresión regular, a menudo llamada también patrón, es un término que describe un conjunto de cadenas sin enumerar sus elementos. Por ejemplo, el grupo formado por las cadenas Handel, Händel y Haendel se describe mediante el patrón "H(a|ä|ae)ndel". La mayoría de las formalizaciones proporcionan los siguientes constructores: una expresión regular es una forma de representar a los lenguajes regulares (finitos o infinitos) y se construye utilizando caracteres del
  • 2. Expresiones Regulares Guía Nº 4 Validación 2 alfabeto sobre el cual se define el lenguaje. Específicamente, las expresiones regulares se construyen utilizando los operadores unión, concatenación y clausura de Kleene1 .[1] Para conocer más sobre este tema, leer en [1] donde se encuentra la nomenclatura para construir una expresión regular. Algunos ejemplos de expresiones regulares son: [0-9] ó d Acepta solo caracteres que contengan números. [A-Z] Acepta solo caracteres en mayúscula. ^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,3})+$ Esta expresión es útil cuando se necesita validar el correo electrónico. [a-zA-Z]+ [0-9] ó w Acepta solo caracteres alfanuméricos Ahora se va a poner en práctica las expresiones regulares con el siguiente ejercicio: Se desea desarrollar una aplicación donde se pueda evaluar una cadena de texto e indique si pertenece a una determinada expresión regular, los patrones a utilizar son: tipo numérico, alfabético, alfanumérico y validación de un correo electrónico. Con base a lo anterior se obtiene los siguientes diagramas para el GUI y el negocio: GUI 1 En lógica matemática y en ciencias de la computación, la clausura de Kleene (también llamada estrella Kleene o cierre estrella) es una operación unaria que se aplica sobre un conjunto de cadenas de caracteres o un conjunto de símbolos o caracteres (alfabeto), y representa el conjunto de las cadenas que se pueden formar tomando cualquier número de cadenas del conjunto inicial, posiblemente con repeticiones, y concatenándolas entre sí.[2]
  • 3. Expresiones Regulares Guía Nº 4 Validación 3 Negocio class GUI EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial V Eventos + ACEPTAR: String = "Aceptar" {readOnly} + ALFABETICA: String = "Alfabética" {readOnly} + ALFANUMERICA: String = "Alfanumérica" {readOnly} + CORREO: String = "e-mail" {readOnly} + LIMPIAR: String = "Limpiar" {readOnly} + NUMERICA: String = "Numérica" {readOnly} - ventana: VentanaPrincipal + actionPerformed(ActionEvent) : void + Eventos(VentanaPrincipal) PanelExpresion - opciones: JRadioButton ([]) - textExpresionEvaluar: JTextField + getTextoEvaluar() : String + PanelExpresion(Eventos) + setTextoEvaluar(String) : void VentanaPrincipal - buttonAceptar: JButton - buttonLimpiar: JButton - eventos: Eventos - expresion: Expresion - panel: PanelExpresion - titleExpresion: JLabel + activarAccionAlfabetica() : void + activarAccionAlfanumerica() : void + activarAccionCorreo() : void + activarAccionLimpiar() : void + activarAccionNumerica() : void + actualizarTitulo() : void + evaluarExpresion() : void + main(String[]) : void + VentanaPrincipal() JPanel JFrame ActionListener -ventana -panel -eventos
  • 4. Expresiones Regulares Guía Nº 4 Validación 4 Al realizar el código de la GUI se obtiene la siguiente ventana: class negocio EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA EA 8.0 Unregistered Trial Version EA 8.0 Unregistered Trial Version EA Expresion + EXPRESION_ALFABETICA: String = "[a-zA-Z]" {readOnly} + EXPRESION_ALFANUMERICA: String = "[a-zA-Z]+[0-9]" {readOnly} + EXPRESION_CORREO: String = "^w+([.-]?... {readOnly} + EXPRESION_NUMERO: String = "[0-9]" {readOnly} - tipo: int + TIPO_ALFABETICA: int = 0 {readOnly} + TIPO_ALFANUMERICA: int = 2 {readOnly} + TIPO_CORREO: int = 3 {readOnly} + TIPO_NUMERO: int = 1 {readOnly} + getTipo() : int + setTipo(int) : void + validarExpresion(String) : boolean
  • 5. Expresiones Regulares Guía Nº 4 Validación 5 La parte que realmente interesa es la del negocio donde se va explicar cómo se realizó el código. Las siguientes imágenes muestra el desarrollo del diagrama de clases propuesto:
  • 7. Expresiones Regulares Guía Nº 4 Validación 7 Como se observa se decidió dividir en constantes los diferentes tipos de expresiones, de este modo permite un manejo más eficiente a la hora de evaluar una cadena, por este motivo fue que se escogió una estructura tipo swich, la cual permite seleccionar el código a utilizar según el cada caso y depende de un numero de selección. Por otro lado se va analizar cada una de las expresiones y como es su sintaxis: Expresión alfabética: [a-zA-Z]+ Significa que cada carácter evaluado con esta expresión debe estar dentro del lenguaje para este caso el lenguaje a seguir son las letras minúsculas de la a hasta z, mas las letras en mayúsculas de la A hasta la Z. Esto es lo definido dentro de los corchetes cuadrado [], ahora el símbolo(+) significa que puede evaluar más de una carácter es decir una cadena de caracteres. Expresión Numérica: [0-9]+ Tomando el mismo principio que el anterior el lenguaje de esta expresión está definido entre los números de 0 al infinito, pero enteros positivos. Expresión Alfanumérica: [a-zA-Z]+ [0-9]+ Esta expresión une los lenguajes de la expresión alfabética y la numérica, pero con la condición que la cadena a evaluar al menos el primer carácter de la cadena sea una letra y el segundo un número, por ejemplo: a1, ea3, shfjkfsdgfhfj3, q325456346. Expresión correo electrónico: ^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,3})+$ Esta expresión es una combinación de la nomenclatura de las expresiones regulares para Java, esta indica con (^) que necesariamente la cadena debe comenzar con caracteres alfanuméricos sin importar su orden (w), el símbolo (+) carácter anterior uno o más veces, ahora [ .-]? Significa que puede ir solo una vez, ya sea punto o guion, pero es opcional. Con respecto al paréntesis que termina con * indica que ese tramo de expresión puede repetirse cero a n-veces, luego encontramos el símbolode @ seguidodemás cadenas alfanuméricas y punto, en la parte de w{2,3} está diciendo que esa parte de la cadena debe contener mínimo 2 y máximo 3 caracteres y por último el símbolo de $ significa que es el final de la cadena.
  • 8. Expresiones Regulares Guía Nº 4 Validación 8 Entendiendo cómo funcionan las expresiones regulares, ahora observemos que métodos invoca Java para evaluar las expresiones, existen dos formas de realizar esta validación la primera opción la brinda un método de la clase String con el método matches (String par), que recibe como parámetro el patrón con el cual se va a evaluar, para nuestro caso este fue el método utilizado. La segunda opción es utilizar directamente la librerías Pattern y Matcher [3], visualicemos como funciona estas dos librerías. Primero importa las librerías. Segundo crear los objetos de las dos clases como en el siguiente método:
  • 10. Expresiones Regulares Guía Nº 4 Validación 10 Bibliografía [1] Expresión regular. (2020). Recuperado 29 March 2020, en https://es.wikipedia.org/wiki/Expresi%C3%B3n_regular [2] Clausura de Kleene. (2020). Recuperado 29 March 2020, en https://es.wikipedia.org/wiki/Clausura_de_Kleene [3] Java Platform SE 6. (2015). Recuperado 29 March 2020, en https://docs.oracle.com/javase/6/docs/api/ [4] perfil, V. (2013). Validación con expresiones regulares y Javascript. Retrieved 29 March 2020, from http://maestrojavascript.blogspot.com/2013/10/validacion- con-expresiones-regulares-y.html
  • 11. Expresiones Regulares Guía Nº 4 Validación 11 CONTROL DE CAMBIOS Fecha Observación Autor 28/04/2020 Se crea guía Nº 4, sobre expresiones regulares Mg. Josué Nicolás Pinzón Villamil