1. Obtener las siguientes expresiones regulares y para los siguientes lenguajes:
• El conjunto de todas las cadenas con el mismo número de ceros que de
unos, tales que ningún prefijo tiene dos ceros más que unos ni dos unos más que ceros.
• El conjunto de todas las cadenas formadas por ceros y unos cuyo
número de ceros es divisible por cinco y cuyo número de unos es par.
• El conjunto de cadenas del alfabeto {a,b,c} que contienen al menos una a
y al menos una b.
• El conjunto de cadenas formadas por 0s y 1s cuyo décimo símbolo por la
derecha sea 1.
• El conjunto de cadenas formadas por ceros y unos cuyo número de ceros
es divisible por cinco.
• Los números binarios que tienen exactamente un par de ceros
consecutivos.
• El conjunto de todas las cadenas formadas por ceros y unos que
contienen 101 como subcadena.
• Los números binarios que no contiene la subcadena 1001.
2. Construya una expresión regular para los siguientes casos de aplicación y
desarróllelas en Java mediante la librería ReGex:
• Una expresión regular que valide cualquier correo electrónico completo.
• Una expresión regular que valide el formato de fecha: DD/MM/AAA. • Una expresión regular que valide el formato de Hora: hh:mm:ss • Una expresión regular que valide el formato de contraseñas: Entre 8 y 10 caracteres, por lo menos un digito y un alfanumérico, y no puede contener caracteres espaciales. • Una expresión regular que valide el formato de contraseñas: Entre 8 y 10 caracteres, por lo menos un digito y un alfanumérico, y puede contener caracteres espaciales: @ . - _ $ % * + ( )
• Una expresión regular que valide una dirección IPv4.
• Una expresión regular que valide una dirección IPv6. • Una expresión regular que valide una dirección IPv6 Hex. • Una expresión regular que valide una URL. 3. Simplifique las siguientes expresiones regulares: