26.10.05

Soporte de expresiones regulares en Java

Saludos.

Existen muy buenas herramientas libres para trabajar con expresiones regulares en Java, como (http://lucene.apache.org/). Sin embargo, a partir de la versión 1.4, el kit estándar de Java incluye su propio soporte para expresiones regulares.
En el paquete 'java.util.regexp' encontramos las clases Matcher y Pattern. La primera clase permite aplicar una expresión sobre una cadena de texto. La segunda clase representa una expresión regular compilada para ganar en eficiencia.

La manera más sencilla y rápida de comprobar si una cadena satisface una expresión regular es mediante el método estático 'boolean Pattern.matches(cadena, expresión regular)'. Es posible conseguir el mismo efecto invocando el método matches sobre un objeto String. A continuación se muestra un sencillo ejemplo.


import java.util.regex.*;

public class EjemploRegExp {

// Números de 2 cifras que empiecen por 1 o 2
static String re = "\\b[1][0-9]|[2][0-9]";
static String cadena1 = "10";
static String cadena2 = "110";

public static void main(String[] args) {
if (Pattern.matches(cadena1, re))
System.out.println(cadena1+" cumple: "+re);
else
System.out.println(cadena1+" no cumple: "+re);
if (cadena2.matches(re))
System.out.println(cadena2+" cumple: "+re);
else
System.out.println(cadena2+" no cumple: "+re);
}
}

Además, la clase String también nos ofrece la manera de dividir un String mediante una expresión regular con el método:

String[] split(String regex)
String[] split(String regex, int limit)

En el próximo mensaje veremos una aplicación práctica extendiendo la herramienta JUnit (www.junit.org) para que soporte expresiones regulares.

2 comments:

Roberto Iza Valdés said...
This comment has been removed by a blog administrator.
Anonymous said...

Hahah, Mon portable s'est écrasé quand je regardais rincew.blogspot.ru dernière fois que j'étais ici. Et pour les 2 derniers mois, j'ai été la recherche de ce blog, j'ai tellement reconnaissante qu'elle trouve une fois de plus! : D