Regex úteis para o seu dia a dia
Índice
Regex usadas no Brasil
CPF
Valida tanto 123.456.789-00
quanto 12345678900
Não valida o algoritmo, só o formato
(^\d{3}\.\d{3}\.\d{3}\-\d{2}$)
CNPJ
Valida tanto 12.345.678/0001-00
quanto 12345678000100
Não valida o algoritmo, só o formato
(^\d{2}\.\d{3}\.\d{3}\/\d{4}\-\d{2}$)
CPF ou CNPJ
Muito útil quando você só precisa de um documento válido
(^\d{3}\.\d{3}\.\d{3}\-\d{2}$)|(^\d{2}\.\d{3}\.\d{3}\/\d{4}\-\d{2}$)
RG
Valida qualquer RG, incluíndo finais com o dígito X
(^\d{1,2}).?(\d{3}).?(\d{3})-?(\d{1}|X|x$)
Telefone
Valida qualquer telefone ou celular, com ou sem DDD. O traço é opcional.
(^[0-9]{2})?(\s|-)?(9?[0-9]{4})-?([0-9]{4}$)
CEP
Valida qualquer CEP com o traço sendo opcional.
(^[0-9]{5})-?([0-9]{3}$)
Outras
Trim nos espaços
Quem precisa de espaços, não é mesmo?
^[\s]*(.*?)[\s]*$
HTML Tag
Tá fazendo scrapping que eu sei, essa regex te ajuda nisso
<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)
Valor hexadecimal
\B#(?:[a-fA-F0–9]{6}|[a-fA-F0–9]{3})\b
Email válido
A melhor expressão está no emailregex.com
Na dúvida, sempre use a mais atual desse site.
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
Username
Qualquer username, entre 3 e 15 caracteres com letras, números, underline e traço
/^[a-z0-9_-]{3,15}$/
Password
Senha de no mínimo 6 caracteres, pelo menos uma letra maiúscula, pelo menos uma letra minúscula, pelo menos um número, pelo menos um caractere especial
(?=^.{6,}$)((?=.*\w)(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[|!"$%&\/\(\)\?\^\'\\\+\-\*]))^.*
URLs
Qualquer url http, https, ftp válida
^(((https?|ftp):\/\/)?([\w\-\.])+(\.)([\w]){2,4}([\w\/+=%&_\.~?\-]*))*$
IPv4
Qualquer IPv4 válido
\b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\b
URLs ou IPv4
As 2 regex acima juntas
^(((h..ps?|f.p):\/\/)?(?:([\w\-\.])+(\[?\.\]?)([\w]){2,4}|(?:(?:25[0–5]|2[0–4]\d|[01]?\d\d?)\[?\.\]?){3}(?:25[0–5]|2[0–4]\d|[01]?\d\d?)))*([\w\/+=%&_\.~?\-]*)$
Regexs são poderosas
Dá pra se fazer quase tudo com regex, se você prefere aprender ao invés de só usar, escrevi um artigo que pode te ajudar: Como ser feliz usando Regex
Até breve