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-9e_\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 de0a9[0-9]{2,4}- Determina de 2 a 4 dígitos de0a9^ou\A- Início de string$ou\Z- Fim de string
- Após o fim do regex temos as flags:
-
gGlobal - busca em toda a cadeia de caracteres o padrão desejado como é possível ver no exemplo a seguir:Regex: /a/g
acasaéamarela -
mMultiline - usando-o os símbolos^e$correspondem respectivamente ao início e fim de cada linhaRegex: /^casa$/m
casa
é amarela, casa -
iInsensitive - não diferencia letras maiúsculas com minúsculasRegex: /a/i
Acasa é amarelaRegex: /a/gi
Acasaéamarela -
sSingle Line - faz a cadeia de caracteres ter tratada como se fosse em uma única linhaRegex: /a.*a/is
A
casa é amarelaRegex: /a.*a/i
A
casa é amarela -
uUnicode - os intervalos de [a-z] serão tratados todos os caracteres unicodesRegex: /\w/giu
AcasaéamarelaRegex: /\w/gi
Acasaé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/