Las operaciones que pueden utilizar expresiones regulares en String en realidad utilizan las funciones de java.util.regex.Pattern y java.util.regex.Matcher. Al llamar al método match() de String, en realidad llama al método estático match() de Pattern. Este método devuelve un valor booleano que indica si la cadena coincide con la expresión regular.
Si desea tratar la expresión regular como un objeto para su reutilización, puede utilizar el método estático compilar() de Pattern para compilarla. El método compile() devolverá una instancia de Pattern, que representa una expresión regular. Luego puede reutilizar el método matcher() de la instancia de Pattern para devolver una instancia de Matcher, que representa una instancia que coincide con la expresión regular. en esta instancia, los métodos que cumplen las condiciones de expresión regular están disponibles para su operación. El ejemplo 6.11 demuestra esto.
** Ejemplo 6.11UsePatternMatcher.java
importar java.util.regex.*;
clase pública UsePatternMatcher {
público estático vacío principal (String [] argumentos) {
Teléfonos de cadena1 =
"Número de móvil de Justin: 0939-100391n" +
"número de teléfono móvil de mamá: 0939-666888n";
Patrón patrón = Pattern.compile(".*0939-\d{6}");
Comparador de coincidencias = patrón.matcher(teléfonos1);
while(matcher.buscar()) {
System.out.println(matcher.group());
}
Teléfonos de cadena2 =
"Número de teléfono móvil de Caterpillar: 0952-600391n" +
"número de teléfono móvil de Bush: 0939-550391";
comparador = patrón.matcher(teléfonos2);
while(matcher.buscar()) {
System.out.println(matcher.group());
}
}
}
El ejemplo 6.11 buscará números que comiencen con 0939. Suponiendo que los números provienen de más de una fuente (como teléfonos1, teléfonos2), puede compilar la expresión regular y devolver un objeto Patrón. Luego puede reutilizar este objeto Patrón durante la comparación. Utilice matcher() para devolver instancias de Matcher coincidentes. El método find() indica si hay una cadena coincidente y el método group() puede devolver la cadena coincidente. Los resultados de ejecución del programa son los siguientes:
Número de móvil de Justin: 0939-100391
Número de teléfono móvil de mamá: 0939-666888
Número de teléfono móvil de Bush: 0939-550391.
Reescribamos el ejemplo 6.9 usando Pattern y Matcher para que el programa pueda devolver cadenas que coincidan con la expresión regular en lugar de devolver cadenas que no coincidan.
** Ejemplo 6.12RegularExpressionDemo2.java
importar java.util.regex.*;
clase pública RegularExpressionDemo2 {
público estático vacío principal (String [] argumentos) {
Texto de cadena = "abcdebcadxbc";
Patrón patrón = Pattern.compile(".bc");
Comparador de coincidencias = patrón.matcher(texto);
while(matcher.buscar()) {
System.out.println(matcher.group());
}
Sistema.out.println();
}
}
style='font-family:宋体'>Resultados de la ejecución:
abecedario
ebc
xbc
Este artículo proviene del blog de CSDN. Indique la fuente al reimprimir: http://blog.csdn.net/wofe912/archive/2009/12/18/5030571.aspx .