Expressões Regulares: Desmistificando a Certificação SCJP6 Parte XI - Parte 1
Nesta parte desta série de artigos sobre certificação utilizaremos as classes java.regex.Matcher, java.regex.Pattern e java.util.Scanner para nos auxiliar a encontrar coisas.
Expressões Regulares
Uma expressão regular é um modelo formal de apontar um padrão de texto. De modo mais específico, é uma composição de caracteres e símbolos com funções especiais que, quando reunidos entre si e com caracteres literais, formam uma sequência, ou seja, uma expressão.
Essa expressão será avaliada como uma regra que sinalizará sucesso se uma entrada de dados qualquer combinar com essa regra.
Veja com muita atenção o exemplo e a saída. Em seguida explicaremos outros detalhes da sintaxe Java para o uso de regexps.
package devmedia;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ExpressaoRegex {
/**
* @param args
*/
public static void main(String[] args) {
Pattern p = Pattern.compile("e.tende");
Matcher m = p.matcher("Subclasse estende a Superclasse");
boolean b = false;
System.out.println("Padrão: "+m.pattern());
while(b = m.find()){
System.out.println(m.start()+" "+m.group());
}
System.out.println();
Pattern p1 = Pattern.compile("23.34");
Matcher m1 = p1.matcher("Já são 23:34.");
boolean b1 = false;
System.out.println("Padrão: "+m1.pattern());
while(b1 = m1.find()){
System.out.println(m1.start()+" "+m1.group());
}
}
}
Saída:
Padrão: e.tende
10 estende
O padrão é: 23.34
7 23:34
Analisaremos outro metacaractere de representação: a lista [...]. Ela possui total consciência do que quer e nada diferente daquilo casa com quem ela tem conhecimento. Observe o código a seguir:
package devmedia;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ExpressaoRegex {
/**
* @param args
*/
public static void main(String[] args) {
Pattern p = Pattern.compile("e[xs]tende");
Matcher m = p.matcher("Subclasse estende e/ou extende a Superclasse?");
boolean b = false;
System.out.println("Padrão: "+m.pattern());
while(b = m.find()){
System.out.println(m.start()+" "+m.group());
}
}
}
Saída:
Padrão: e[xs]tende
10 estende
23 extende
Vimos, até agora, o básico da sintaxe Java para regexps, vamos mostrar na tabela abaixo o Pattern e os Matchers possíveis.
Pattern | Matcher |
---|---|
pi[aã]o | piao pião |
[Jj]Ava | Java Java |
Bo[nN]é | Boné BoNé |
11[:. ]25 | 11:25 11.25 11 25 |
<[ABC]> | , , |
Dentro da lista, o ponto não é metacaracteres; ele é apenas um ponto. Ou seja, todo caractere na lista é normal.
Na próxima parte continuaremos a tratar sobre regex.
Leia todos artigos da série
- Desmistificando a Certificação SCJP6 - Parte I
- Desmistificando a Certificação SCJP6 - Parte II
- Desmistificando a Certificação SCJP6 - Parte III
- Desmistificando a Certificação SCJP6 - Parte IV - Parte 1
- Desmistificando a Certificação SCJP6 - Parte IV - Parte 2
- Desmistificando a Certificação SCJP6 - Parte V - Parte 1/3
- Desmistificando a Certificação SCJP6 - Parte V - Parte 2/3
- Desmistificando a Certificação SCJP6 - Parte V - Parte 3/3
- Desmistificando a Certificação SCJP6 - Parte VI - Parte 1/3
- Desmistificando a Certificação SCJP6 - Parte VI - Parte 2/3
- Desmistificando a Certificação SCJP6 - Parte VI - Parte 3/3
- Desmistificando a Certificação SCJP6 - Parte VII - Parte 1/3
- Desmistificando a Certificação SCJP6 - Parte VII - Parte 2/3
- Desmistificando a Certificação SCJP6 - Parte VII - Parte 3/3
- Operadores apropriados - Desmistificando a Certificação SCJP6 - Parte VIII - Parte 1
- Instruções if e switch - Desmistificando a Certificação SCJP6 - Parte VIII - Parte 2
- Iteradores e loops - Desmistificando a Certificação SCJP6 - Parte VIII - Parte 3
- Mini-Teste: Desmistificando a Certificação SCJP6 - Parte VIII - Parte 4 - A
- Mini-Teste: Desmistificando a Certificação SCJP6 - Parte VIII - Parte 4 - B
- Tratamento de Exceções em Java: Desmistificando a Certificação SCJP6 - Parte IX - Parte 1
- Definindo Exceções em Java: Desmistificando a Certificação SCJP6 - Parte IX - Parte 2
- Assertivas Java: Desmistificando a Certificação SCJP6 - Parte IX - Parte 3
- Mini-Teste: Desmistificando a Certificação SCJP6 - Parte IX - Parte 4
- String: Desmistificando a Certificação SCJP6 - Parte X - Parte 1
- StringBuilder/StringBuffer e File: Desmistificando a Certificação SCJP6 - Parte X - Parte 2
- Combinação de Classes E/S: Desmistificando a Certificação SCJP6 - Parte X - Parte 3
- Utilizando Arquivos e Diretórios: Desmistificando a Certificação SCJP6 - Parte X - Parte 4
- Console e Serialização: Desmistificando a Certificação SCJP6 - Parte X - Parte 5
- Mini-teste: Desmistificando a Certificação SCJP6 - Parte X - Parte 6 A
- Mini-teste: Desmistificando a Certificação SCJP6 - Parte X - Parte 6 B
- Lista Negada e Metacaracteres: Desmistificando a Certificação SCJP6 Parte XI - Parte 2
- Metacaracteres Âncora e Busca: Desmistificando a Certificação SCJP6 Parte XI - Parte 3
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Vídeo