Skip to content

Instantly share code, notes, and snippets.

@marcusviniciusfa
Last active October 9, 2021 16:07
Show Gist options
  • Save marcusviniciusfa/e0875dba72cc0c2530d94f35f83ffdf1 to your computer and use it in GitHub Desktop.
Save marcusviniciusfa/e0875dba72cc0c2530d94f35f83ffdf1 to your computer and use it in GitHub Desktop.
Regex Notes

Regex Notes

"Expressões regulares são padrões utilizados para selecionar combinações de caracteres em uma string. Em JavaScript, expressões regulares também são objetos." (Fonte: MDN Web Docs)

Anotações baseadas (Total ou parcialmente) no curso: Fundamentos de Expressões Regulares (Regex)

📌 Regex 101 - Ferramenta para testes online
📌 MDN Web Docs - Guia #1 para usar no JavaScript
📌 W3Schools - Guia #2 para usar no JavaScript

Sumário

  1. Flags
  2. Executando no JS
  3. Caracteres

Flags

  • g - Global ⇨ Encontra todas as ocorrências que correspondem a expressão regular.
  • i - Ignore case ⇨ Ignora maiúsculas e minúsculas.
// JavaScript Sample

const string = 'Exemplo de uso das flags'

/**
 * Sem uso de flags
*/

/**
 * string.match() - Corresponde a uma string ou a um objeto que suporta 
 * a correspondência e retorna uma matriz contendo os 
 * resultados dessa pesquisa, ou null se nenhuma 
 * correspondência for encontrada
 * 
 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match
*/
console.log(string.match(/E|fl/))
// [ 'E', index: 0, input: 'Exemplo de uso das flags' ]

console.log(string.match(/e|fl/))
// [ 'e', index: 2, input: 'Exemplo de uso das flags' ]

console.log(string.match(/g|fl/))
// [ 'fl', index: 19, input: 'Exemplo de uso das flags' ]

/**
 * Com flags
*/

console.log(string.match(/E|fl/g))
// [ 'E', 'fl' ]

console.log(string.match(/e|fl/gi))
// [ 'E', 'e', 'e', 'fl' ]

console.log(string.match(/g|fl/gi))
// [ 'fl', 'g' ]

Executando no JS

  • RegExp() - Construtor de Regex
  • regex.test(); .exec() - Métodos de Regex
  • string.match(); .replace(); .search(); .split() - Métodos de String
const string = '0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f'

const re = new RegExp('9')

// Métodos de Regex

/**
 * regex.test() - Retorna um valor booleano que indica se existe 
 * ou não um padrão em uma string pesquisada
 * 
 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test
*/
console.log(re.test(string))
// true

/**
 * regex.exec() - Executa uma pesquisa em uma string usando um padrão 
 * de expressão regular e retorna uma matriz contendo os resultados dessa pesquisa
 * (Semelhante ao método string.match())
 * 
 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec
*/
console.log(re.exec(string))
// [ '9', index: 18, input: '0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f' ]

// Métodos de String

const re = /[a-f]/g

console.log(string.match(re))
// [ 'a', 'b', 'c', 'd', 'e', 'f' ]

/**
 * string.search() - Encontra a primeira correspondência de substring 
 * em uma pesquisa de expressão regular
 * 
 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/search
*/
console.log(string.search(re))
// 20

/**
 * string.replace() - Substitui o texto em uma string, usando um objeto 
 * que oferece suporte à substituição em uma string
 * 
 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace
*/
console.log(string.replace(re, 'test'))
// 0,1,2,3,4,5,6,7,8,9,test,test,test,test,test,test

/**
 * Divida uma string em substrings usando o separador 
 * especificado e retorne-as como uma matriz
*/
console.log(string.split(re, 'test'))
// [ '0,1,2,3,4,5,6,7,8,9,', ',', ',', ',', ',', ',', '' ]

Caracteres

Meta Caracteres

📌 Outros meta caracteres podem ser encontrados aqui

Representantes

Metacaractere Nome Significado
. Ponto Um caractere qualquer
[] Conjunto Conjunto de caracteres permitidos
[^] Conjunto Negado Conjunto de caracteres proibidos

Quantificadores

Metacaractere Nome Significado
? Opcional Zero ou um
* Asterisco Zero ou mais
+ Mais Um ou mais
{n,m} Chaves De n até m

Âncoras

Metacaractere Nome Significado
^ Circunflexo Início de linha
$ Cifrão Fim de linha
\b Borda Início ou fim de palavra

Outros

Metacaractere Nome Significado
\ Escape Uso de meta caracteres como literal
| Ou Operação de Ou
() Grupo Define um Grupo
\1...\9 Retrovisor Resgata grupos já definidos
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment