Expressões regulares nos
ajudam a identificar textos por padrões. Isso é muito usado para fazer
validações e trabalhar com leitura/escrita de arquivos, entre outras coisas.
Modificadores:
·
(?i) – Ignora letras maiúsculas e
minúsculas;
·
(?x) – Comentários;
·
(?m) – Múltiplas linhas;
·
(?s) – Dotall;
Pattern.MULTILINE ou (?m) diz ao Java para aceitar as âncoras ^ e $ coincidirem no início e no final de cada linha (caso contrário, elas apenas coincidem no início / fim de toda a cadeia de caracteres).
Pattern.DOTALL ou (?s) informa ao Java para permitir que o ponto corresponda também aos caracteres de nova linha.
Pattern.MULTILINE ou (?m) diz ao Java para aceitar as âncoras ^ e $ coincidirem no início e no final de cada linha (caso contrário, elas apenas coincidem no início / fim de toda a cadeia de caracteres).
Pattern.DOTALL ou (?s) informa ao Java para permitir que o ponto corresponda também aos caracteres de nova linha.
Uso dos modificadores:
“Java”.matches(“(?i)java”)
– true.
“Java”.matches(“(?ims)java”)
– true.
Metacaracteres
·
. (ponto) – Qualquer caractere;
·
\d – Dígitos [0-9];
·
\D – Não é dígito;
·
\s – Espaços;
·
\S – Não é espaço;
·
\w – Letras e números [a-z,A-Z,0-9];
Uso dos metacaracteres:
“J”.matches(“(?i)\\d”) – false.
“#”.matches(“.”) – true.
“J”.matches(“\\w”) – true.
Obs:
note o uso do caractere de escape “\” quando necessário.
Quantificadores
·
* (asterisco) – Qualquer quantidade;
·
? – 0 ou 1 vez;
·
+ – 1 ou mais vezes;
·
{n} – Exatamente n vezes;
·
{n,} – Pelo menos n vezes;
·
{n,m} – Entre n e m vezes;
Uso dos quantificadores:
“60.282-010”.matches(“\\d{2}\.\\d{3}-\\d{3}”)
– true.
“@#%”.matches(“.{2,3}”) – true.
“Java123”.matches(“\\w*”) –
true.
Metacaracteres
de Fronteira
·
^ – Inicia com;
·
$ – Finaliza com;
·
| – Ou;
Uso dos metacaracteres de fronteira:
“Java123”.matches(“^Java.*”)
– true.
“Java123”.matches(“.*123$”)
– true.
Agrupadores
·
[...] – Agrupamento;
·
[a-z] – Alcance;
·
[a-e][i-u] – União;
·
[a-z&&[aeiou]] – Interseção;
·
[^abc] – Exceção;
·
[a-z&&[^m-p]] – Subtração;
·
\x
Uso dos agrupadores:
"Java123”.matches(“(?i)[a-z]*”)
– true.
Nenhum comentário:
Postar um comentário