Expressões regulares em Java
Examinaremos o Java regex com exemplos na esperança de que isso nos ajude a alcançar nossos objetivos de aprendizado.
Expressão Regular Java
Ao discutir o Java Regex , as expressões regulares (RE) são sequências de caracteres que compõem um padrão de pesquisa.
É possível usar esse padrão de pesquisa para descrever o que você está procurando ao pesquisar dados no texto.
Em expressões regulares, um único caractere pode ser usado ou um padrão mais complicado pode ser criado.
As operações de pesquisa e substituição de texto podem ser realizadas usando expressões regulares.
Quanto ao Java regex , não há classe integrada para expressões regulares, mas podemos importar o pacote java.util.regex para usar expressões regulares.
Estas aulas estão inclusas no pacote:
- Classe Padrão – Classifica os padrões (usados na pesquisa).
- Matcher Class – Usado para encontrar padrões durante a pesquisa
- Classe PatternSyntaxException – Reporta erros de sintaxe em padrões de expressões regulares
Dê uma olhada em uma frase para instâncias da palavra “mrexamples”:
Example:
Example:
Exemplo de Explicação
Estamos procurando a palavra “Java Regex” em uma frase usando Java regex .
Na primeira etapa, o padrão é compilado usando o método Pattern.compile() . Em pesquisas Java regex , o primeiro parâmetro indica qual padrão está sendo procurado e o segundo parâmetro indica se a insensibilidade a maiúsculas e minúsculas deve ser usada.
Especificar o segundo parâmetro é uma opção.
A busca por um padrão em uma string é feita com o método matcher() . Como resultado, é retornado um objeto Matcher, contendo os detalhes da busca.
Quando o padrão é encontrado na string, o método find() retorna true ; caso contrário, retorna false .
Bandeiras
Compile() usa sinalizadores para alterar como a pesquisa é conduzida. No que diz respeito ao Java regex , aqui estão alguns exemplos:
- Pattern.CASE_INSENSITIVE – Ao pesquisar, as maiúsculas e minúsculas não serão consideradas.
- Pattern.LITERAL – Ao realizar uma pesquisa, os caracteres especiais não têm nenhum significado ou significado especial. Eles serão tratados como personagens comuns.
- Pattern.UNICODE_CASE – Combine-o com o sinalizador CASE_INSENSITIVE, ignora alfabetos não ingleses
Padrões de Expressão Regular
O método Pattern.compile() usa um padrão como seu primeiro parâmetro. Em Java regex , especifica o tipo de pesquisa que será realizada.
Um intervalo de caracteres pode ser encontrado usando colchetes:
Expressões | Visão geral |
---|---|
[xyz] | Escolha um caractere entre os valores alternativos entre colchetes. |
[^xyz] | identifica um caractere que não está presente entre os colchetes. |
[0-9] | Um caractere entre o intervalo de 0 a 9 é escolhido. |
Expressão Java [abc]
A expressão [abc] é usada para pesquisar qualquer valor do colchete da expressão após percorrer toda a string:
Example:
Expressão Java [^abc]
Este método é usado para mostrar se algum caractere não está presente na frase, mas é dado na expressão:
Example:
Expressão Java [0-9]
Se a Frase em busca contiver qualquer número entre 0 a 9 então a seguinte expressão verifica sua existência:
Example:
Metacaracteres
Metacaracteres são caracteres que possuem um significado especial associado a eles:
Metacaracteres | Visão geral |
| | Procura uma correspondência para qualquer padrão dividido por |, como carro|bicicleta|ônibus. |
. | Apenas uma instância de qualquer caractere é encontrada |
^ | Identifica uma correspondência como o primeiro caractere de uma string, como em: ^mrexamples |
$ | procura uma correspondência no final da string, como em: mrexamples$ |
d | localiza um dígito |
s | Um caractere de espaço em branco é pesquisado. |
\b | localiza uma correspondência no início de uma palavra, como REGEX, ou no final de uma palavra, como REGEX. |
uxxxx | Identifica o caractere Unicode representado pelo valor hexadecimal xxxx. |
Quantificadores
Os quantificadores são usados para definir quantidades das seguintes maneiras:
Quantificadores | Visão geral |
n+ | Identifica qualquer string que tenha pelo menos um n. |
n* | Verifica qualquer string que tenha n ocorrendo zero ou mais vezes. |
n? | Qualquer string com zero ou uma ocorrência de n é correspondida. |
n{x} | Qualquer texto que tenha uma sequência de X n's é correspondido aqui. |
n{x,y} | Qualquer string contendo uma série de X a Y n's é correspondida. |
n{x,} | Qualquer string que inclua pelo menos X n's é considerada uma correspondência. |
A barra invertida ( ) pode ser usada para escapar de outros caracteres especiais em sua expressão ao procurar por um deles. Como você provavelmente sabe, as próprias barras invertidas precisam ser escapadas em Java , e é por isso que é necessário escapar de caracteres especiais com duas barras invertidas.
Por exemplo, se você deseja encontrar um ou mais pontos de interrogação, pode usar a seguinte expressão: “/? ”