Regex para seres humanos 🤖
Olá ✌,
nesse breve artigo quero trazer algumas pequenas coisas que me ajudaram e podem facilitar o seu entendimento no assunto... como não sou o dono da verdade, quero que você comente o que achou do post e suas sugestões de alterações!
Introdução
Regex (Expressões regulares) são amplamente utilizados para verificar, padronizar e até mesmo extrair uma parte de uma string. Ou seja, com ele podemos fazer 3 ações, buscar, validar e substituir
OBS.: Cada linguagem de programação lida com o regex de forma diferente, este breve artigo é mais voltado ao JavaScript
Sua Estrutura 🏛️
- Primeiro temos os separadores
/
,~
,@
,;
,%
, `,#
os separadores delimitam o início e o fim de um regex, dependendo da linguagem de programação devemos utilizar um ou outro, em algumas não devemos utilizá-los
\w
- Todos os caracteres dea-z
,A-Z
,0-9
e_
\W
- Tudo que não for letra nem número\d
- Número decimal0-9
\D
- Qualquer coisa que não seja um número\X
- Qualquer carácter unicode+
- Sequencia, como, por exemplo,\d+
é uma sequência de dígitos*
- Sequencia de caracteres ou nada|
- Ou[0-9]{4}
- Determina 4 dígitos de0
a9
[0-9]{2,4}
- Determina de 2 a 4 dígitos de0
a9
^
ou\A
- Início de string$
ou\Z
- Fim de string
- Após o fim do regex temos as flags:
-
g
Global - busca em toda a cadeia de caracteres o padrão desejado como é possível ver no exemplo a seguir:Regex: /a/g
a
ca
sa
éa
ma
rela
-
m
Multiline - usando-o os símbolos^
e$
correspondem respectivamente ao início e fim de cada linhaRegex: /^casa$/m
casa
é amarela, casa -
i
Insensitive - não diferencia letras maiúsculas com minúsculasRegex: /a/i
A
casa é amarelaRegex: /a/gi
A
ca
sa
éa
ma
rela
-
s
Single Line - faz a cadeia de caracteres ter tratada como se fosse em uma única linhaRegex: /a.*a/is
A
casa é amarela
Regex: /a.*a/i
A
casa é amarela
-
u
Unicode - os intervalos de [a-z] serão tratados todos os caracteres unicodesRegex: /\w/giu
A
casa
é
amarela
Regex: /\w/gi
A
casa
éamarela
-
Alguns exemplos de Regex 📑
-
Email:
/^[a-zA-Z0-9-.+]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
-
Slug:
/^[a-z0-9-]+$/
regex-23
-
Username:
/^[a-z0-9-_]+$/
pedro_06-2022
Mande o seu Regex que você mais utiliza e que sentiu falta, caso você queria se aprofundar mais no regex recomendo que leia e utilize a ferramenta regex101!
Fonte: https://regex101.com/