Si os interesa el tema en esta página hay toda la información sobre expresiones regulares que podáis necesitar. Si las estáis estudiando ahora mismo en la ingeniería mucho ánimo, como he comentado antes es de lo más interesante que os van a enseñar, así que no desaprovechéis el esfuerzo.
Pero... ¿qué son exactamente? Pues básicamente definen patrones de texto. Normalmente se utilizan para comprobar que un texto de entrada coincide con el patrón definido para el mismo. Por ejemplo, para un ejemplo sencillo podemos construir una expresión regular que nos valide una cadena compuesta solo por letras que empieza por mayúscula y después tiene un número indeterminado de minúsculas:
^[A-Z]{1}[a-z]*$
Como veis es bastante simple. Además la clase String de java nos proporciona el método matches que nos indica si la cadena coincide con la expresión regular pasada por parámetro. Así el código java para comprobar si nuestra cadena coincide con el patrón definido sería:
...
private static final String PATRON = “^[A-Z]{1}[a-z]*$”;
...
String cadenaAValidar = …
if (cadenaAValidar.matches(PATRON)) {
...
}
else {
...
}
...
Como veis este ejemplo es en realidad bastante sencillo, pero plantearos la siguiente pregunta: ¿cómo tendríamos que hacerlo sin usar una expresión regular? ¿Cuántas líneas de código y posibilidades de error nos llevaría una solución ‘programática’?
Esto tiene muchísimas utilidades, desde validaciones simples como la del ejemplo, búsquedas en textos, creación de lenguajes de programación y sus compiladores, … Pero creo que el mejor ejemplo nos lo proporciona la siguiente viñeta de xkcd.
No hay comentarios:
Publicar un comentario