As operações que podem usar expressões regulares em String, na verdade, fazem uso das funções de java.util.regex.Pattern e java.util.regex.Matcher. Ao chamar o método matches() de String, ele na verdade chama o método estático matches() de Pattern. Este método retorna um valor booleano indicando se a string corresponde à expressão regular.
Se você quiser tratar a expressão regular como um objeto para reutilização, você pode usar o método estático compile() do Pattern para compilá-la. O método compile() retornará uma instância de Pattern, que representa uma expressão regular. Você pode então reutilizar o método matcher() da instância de Pattern para retornar uma instância de Matcher, que representa uma instância que corresponde à expressão regular. nesta instância, os métodos que atendem às condições de expressão regular estão disponíveis para operação. O Exemplo 6.11 demonstra isso.
** Exemplo 6.11UsePatternMatcher.java
importar java.util.regex.*;
classe pública UsePatternMatcher {
public static void main(String[] args) {
Telefones de string1 =
"Número do celular de Justin: 0939-100391n" +
"número de celular da mamãe: 0939-666888n";
Padrão padrão = Pattern.compile(".*0939-\d{6}");
Correspondente correspondente = padrão.matcher(telefones1);
enquanto(matcher.find()) {
System.out.println(matcher.group());
}
Telefones de string2 =
"Número de celular da Caterpillar: 0952-600391n" +
"número de celular de Bush: 0939-550391";
matcher = padrão.matcher(telefones2);
enquanto(matcher.find()) {
System.out.println(matcher.group());
}
}
}
O Exemplo 6.11 procurará números começando com 0939. Supondo que os números venham de mais de uma fonte (como phones1, phones2), você pode compilar a expressão regular e retornar um objeto Pattern. Você pode então reutilizar esse objeto Pattern durante a comparação. Use matcher() para retornar instâncias correspondentes do Matcher. O método find() indica se existe uma string correspondente, e o método group() pode retornar a string correspondente. Os resultados de execução do programa são os seguintes:
Número do celular de Justin: 0939-100391
Número de celular da momor: 0939-666888
Número de celular de Bush: 0939-550391
Vamos reescrever o Exemplo 6.9 usando Pattern e Matcher para que o programa possa retornar strings que correspondam à expressão regular em vez de retornar strings que não correspondam.
** Exemplo 6.12RegularExpressionDemo2.java
importar java.util.regex.*;
classe pública ExpressãoRegularDemo2 {
public static void main(String[] args) {
String texto = "abcdebcadxbc";
Padrão padrão = Pattern.compile(".bc");
Correspondente correspondente = padrão.matcher(texto);
enquanto(matcher.find()) {
System.out.println(matcher.group());
}
System.out.println();
}
}
style='font-family:宋体'>Resultados da execução:
abc
ebc
xbc
Este artigo vem do blog CSDN. Indique a fonte ao reimprimir: http://blog.csdn.net/wofe912/archive/2009/12/18/5030571.aspx .