3

RegEx – Regular Expression ou Expressão Regular

#Kotlin #Java #Android
Maycon Fuzita
Maycon Fuzita

RegEx é um método para especificação de um padrão de texto.

 

^[0-9]{7}[-][a-z]$


Isso pode assustar um pouco, mas vamos lá!

 

Como posso aplicar as expressões regulares? Podemos citar três operações principais como:


  • BUSCAS;
  • VALIDAÇÕES EM TEXTO;
  • SUBSTITUIÇÕES;

 

Podemos buscar padrões, por exemplo:


  • Datas - 12/07/2000
  • CEP - 15500-300
  • CPF - 456.655.211-50

 

Podemos verificar se uma determinada cadeia de caracteres atendem ao padrão estabelecido, como números de documento, formato de data entre outros

Podemos substituir parte de um texto para que seja utilizada em algum outro ponto, como retirar o ano de uma data ou qualquer outro tipo de texto e alterar sequencias.

 

Na prática!

 

Tudo que é digitado entre colchetes [ ], para o RegEx isso representa um caractere;


[8] em uma busca irá localizar todos os ‘8’ existentes no arquivo;

[05 ] irá buscar ‘0’ ou ‘5’;

[0-9] com um traço, significa todos numéricos dentro do range de ‘0’ a ‘9’;

 

E para localizar uma sequência exata?

Neste caso temos que utilizar os números separados dentro de colchetes, conforme a necessidade:


[0][7] , ou [6][8][1][7]


 

E se quisermos uma sequência com o mesmo valor?

Utilizamos o número dentro de colchetes [5] e a quantidade de repetições entre chaves {3} , isto é, [5]{3} , uma sequência ‘555’ .

 

Caso seja uma quantidade de 4 valores que esteja dentro de um range [0-9] , sem uma sequência correta, utilizamos [0-9]{4} .


34534654

382 (não atende o padrão com 4 valores)

769679343

96978

23423478

 

Outro caso para este modelo seria pesquisar os últimos valores, utilizando o mesmo exemplo anterior, [0-9]{4} , basta adicionar um $ ao final do RegEx, [0-9]{4}$ ;

 

34534654

382 (não atende o padrão com 4 valores)

769679343

96978

23423478


Podemos também pesquisar sequências que possuam uma quantidade exata de valores, por exemplo, somente sequências com 5 números, basta adicionar '^' ao início do RegEx, ^[0-9]{4}$ ;


34534654

382

769679343

96978  = sequência com a quantidade procurada

23423478


O ‘^’ significa o início da linha e o ‘$’ significa o fim da linha!

 

Dá para misturar letras e números? E símbolos?

Sim! Podemos também!

 

34534654-g

382=5

769679343-F

96978-a

23423478#2

 

Vamos pesquisar nas sequências acima os terminados em ‘valor’ ‘traço’ ‘letra’.

[0-9]+[-][a-z]$

 

34534654-g

382=5

769679343-F

96978-a

23423478#2

 

E porque não foi encontrado o 3-F ? RegEx diferencia maiúsculas e minúsculas [a-z], [A-Z] ;

 

Mas cuidado! Temos algumas exceções quando falamos de símbolos:

($, ^, *, (, ), +, {, }, [, ], \, |, ?, -, .)


Para utilizá-los como caracteres normais, temos que colocar uma ' \ ' antes deles, pois estes símbolos possuem um significado dentro do RegEx.


[\$]

[\^]

[\*]

[\]]

[(]

[\)]

[\+]

[\{ ]

[\}]

[\[]

[\]]

[\\]

[\|]

[\?]

[\-]

[\.]

 

Como podemos pesquisar um CPF?

Vamos exemplificar o seguinte CPF: 845.123.555-11 , ficando o RegEx:

 

[0-9]{3}[.][0-9]{3}[.][0-9]{3}[.][-][0-9]{2}

 

Podemos utilizar o RegEx para alterar sequencias de datas, por exemplo, temos a seguinte data 2021.03.22 e queremos passar para 22/03/2021 .

 

O RegEx possibilita separar sequencias em grupos utilizando parênteses ‘( )’ e reorganizá-los.

 

([0-9]{4}) [.] ([0-9]{2}) [.] ([0-9]{2})

 Grupo 1 [.] Grupo 2 [.] Grupo 3

 

E para reorganizá-los vamos utilizar o ‘$’ seguido do número do grupo:

 

$3/$2/$1

 

Assim teremos como resultado 22/03/2021 .

 

As possibilidades são muitas e existem ferramentas online que podem nos auxiliar neste trabalho como o site: www.regex101.com , que possui a documentação do Regex, sendo possível aplicar e entender em tempo real o RegEx em um texto através de uma ferramenta oferecida na plataforma!

0
26

Comentários (0)

Formado em Sistemas de Informação, buscando migrar para a carreira de TI, possuo experiência de 9 anos no Japão trabalhando no setor industrial.

Brasil