Olá pessoal,
Nest post irei demonstrar rapidamente a utilização de Expressões Regulares em Java, supondo é lógico, que o leitor já sabe o que é uma expressão regular e conhece o funcionamento das mesmas.
Indo direto ao ponto, em Java existem duas classes principais com essa finalidade, são elas: “java.util.regex.Pattern” e “java.util.regex.Matcher”. A primeira, é a representação de uma expressão regular compilada em Java, já a segunda classe, é uma “engine” que permite comparar as suas expressões regulares com um conjunto de caracteres.
Para entender como trabalhar com essas classes, nada melhor do que um exemplo não é mesmo ? então vamos lá. Primeiramente vamos supor a seguinte situação, digamos que em uma determinada frase, “Eu fui a escola”, eu deseje localizar a palavra “fui”, isso ficaria como no exemplo abaixo.
 |
Exemplo 1 |
Agora vamos entender o Exemplo 1 ! A linha 10 cria uma expressão de comparação(Ai pode ser uma regex propriamente dita ou uma string qualquer) utilizando o método estático “compile” da classe Pattern, já na linha 12 o método matcher é invocado passando a string alvo da comparação, para isso, você irá utilizar o objeto pattern que contém a expressão regular compilada(No nosso caso o objeto “p”).
Feito tudo isso, basta percorrer a cadeia de caracteres(“Eu fui a escola”) utilizando o método “find()” da classe Matcher, este método irá varrer esse conjunto de caracteres e comparar com a expressão compilada.
Uma vez casando os caracteres, ele irá separa-los em grupos, a linha 15 apenas exibe os grupos encontrados.
O resultado do exemplo 1 no console é: “fui”.
Uma outra coisa interessante que precisa ser mencionada, é como a classe Matcher localiza os caracteres sendo procurados, para isso ela utiliza o intervalo aberto a esquerda e fechado a direita, ou seja, os indíces começam em Zero e terminam em lenght() – 1, como mostrado na figura abaixo:
Com os métodos start() e end() da classe Matcher, você consegue obter os indíces inicial e final dos grupos encontrados, como no exemplo abaixo.
 |
Exemplo 2 |
Saída no console:
Start : 3
Grupo : fui
End : 6
Metacharacters
São caracteres especiais utilizados para que facillitar e tornar mais dinamica a nossa busca, os metacaracteres suportados pela API são ([{\^-$|]})?*+.
Character Classes
Um recurso disponivel e que torna a utilização de expressões regulares bastante interessante, são as “Classes de Caracteres”, logo abaixo, uma lista com as principais.
Com o uso das classes de caracteres, você reduz a sua busca por caracteres em um pequeno trecho de
código, como mostrado nos exemplo logo abaixo:
Exemplo 3
Dada a expressão regular:
[cpl]ata
Ela irá casar com as seguintes palavras:
lata
cata
pata
Já a expressão regular
[^d]ove
Irá casar com
love , mas não com dove
Que tal a expressão
[a-zA-Z]ta
Que casa com
ata ou Ata
bata ou Bata
cata ou Cata
Podemos utilizar ainda o conceito de união de conjuntos
[b-d[m-p]]adaria
Que casa com
badaria
padaria
madaria
nadaria
No próximo post, coloco um pouquinho de Quantificadores e Consultas Avançadas com Regex em Java, inté.
Mais informações
Curtir isso:
Curtir Carregando...
Relacionado