Expressão regular: o que significa

O que é uma expressão regular?

Regex, ou expressões regulares, são uma marcação de correspondência de padrões que programadores use para pesquisar certos padrões no texto. As expressões regulares podem pesquisar praticamente qualquer coisa, dependendo de como você as estrutura; eles são usados ​​por todos os programadores porque são inestimáveis ​​para ajudar os computadores a classificar os dados rapidamente e filtrar bobagens que poderiam causar erros.

Expressões regulares tendem a parecer assustadoras, especialmente para não programadores. Basta olhar para isto:

[a-zA-Z0-9 _. + -] + @ [a-zA-Z0-9 _-] + \. [a-zA-Z0-9 _.-] +

Realisticamente, não é tão ruim assim; aquele corresponde aos endereços de e-mail. Como você verá, as expressões podem ser divididas em caracteres individuais, todos os quais informam ao programa o que procurar.

As expressões regulares são quase universais. O mesmo general sintaxe aplica-se a todos os idiomas com apenas pequenas variações aqui e ali. Este guia contém exemplos de Python e JavaScript, bem como regex simples e antigo. Se você trabalha com um idioma diferente, não se preocupe. Quase tudo se aplica ao idioma de sua escolha também.

instagram viewer

Regex Basics

Tecnicamente, não há muitas coisas que não possam ser consideradas expressões regulares, porque strings literais de texto são realmente simples. Se você fosse usar 'abcde' como uma expressão regular, a linguagem de programação procuraria por aquela string exata.

O primeiro caractere de correspondência mais dinâmico a observar é o '.' personagem. Nesse contexto, o caractere ponto é um curinga. Se você estiver pesquisando com ele, seu programa retornará qualquer caractere que encontrar como uma correspondência.

Então, e se você quiser procurar um ponto literal? Isso também não é difícil. Quando você quiser usar um ponto final literal, adicione uma barra invertida antes dele, assim: '\.'

Caracteres de barra invertida

A barra invertida desempenha muito mais funções aqui, no entanto. A maioria dos principais caracteres regex inclui uma barra invertida.

Dígitos de Expressão Regular
Encontrar dígitos com Regex em Python.

Dê uma olhada em alguns exemplos:

  • \ d: Dígitos de 0 a 9
  • \ w: letras, dígitos e sublinhados de "caracteres de palavras"
  • \ s: caracteres de espaço em branco, incluindo tabulações, novas linhas e espaços regulares

Se você usar a letra maiúscula em vez de qualquer uma delas, você obterá o inverso. Por exemplo, '\ D' fornece tudo menos dígitos.

Aulas

O caracteres de barra invertida são bons, mas ainda são meio rígidos. Geralmente, você vai querer combinar letras, números ou alguns caracteres especiais.

Classes de expressão regular
Usando classes Regex para encontrar letras em Python.

Coloque os caracteres que deseja combinar em um par de colchetes '[]', e seu programa combinará com qualquer um deles. Isso é chamado de classe regex.

[abcd1234]

O exemplo acima ainda é ineficiente. Em vez disso, você pode usar um traço para especificar um intervalo; por exemplo, todas as letras minúsculas:

[a-z]

Você também pode listar intervalos. A expressão abaixo corresponde a todas as letras e dígitos:

[a-zA-Z0-9]

Se você for incluir o travessão em seu conjunto de caracteres, cole-o no final para evitar que seja avaliado. Funciona com outros caracteres especiais também.

[a-zA-Z0-9 _. + -]

Como com os caracteres de barra invertida, você também pode obter o resultado inverso aqui. Coloque um '^' no início de sua classe para excluí-los de seus resultados. Isso excluirá dígitos e vários caracteres especiais dos resultados:

[^0-9_+.-]

Grupos

Os grupos usam um conjunto de parênteses para separar sua expressão. Eles agrupam dados, permitindo que seu programa os direcione e os use. Quando um programa remove o ' http://' de um endereço da web, ele está usando grupos regex para fazer isso. A regex permite direcionar certos critérios, e os grupos permitem separar seções.

Grupos de Expressão Regular
Regex Groups ajuda a encontrar URLs em JavaScript.

Os grupos também permitem que você escolha entre um padrão ou outro. Eles empregam um único '|' para atuar como "ou" na expressão. A expressão abaixo corresponderá a qualquer um destes: .com, .org, .net, .edu ou .gov.

\. (com | org | net | edu | gov)

Quantificadores

Quantificadores são exatamente o que parecem. Eles informam a expressão a quantidade de um personagem que você está procurando. Estes são os quantificadores disponíveis:

  • *: Zero ou mais
  • +: Um ou mais
  • ?: Zero ou um
  • {3}: O valor entre colchetes

Coloque qualquer um desses quantificadores no final do caractere ou classe cujo valor você deseja especificar. Este exemplo procura números de telefone padrão de sete dígitos:

\ d {3} [. * -] \ d {3} [. * -] \ d {4}

Âncoras e limites

As expressões regulares permitem pesquisar padrões com base em sua posição dentro de uma string de texto ou ao redor de uma palavra.

Âncoras de expressão regular
Âncoras Regex usam posicionamento para encontrar uma correspondência em JavaScript.

Estas são suas opções principais:

  • ^: O início de uma string
  • $: O fim de uma string
  • \ b: limite da palavra (o início ou fim de uma palavra)

Se você deseja encontrar apenas strings que começam com uma letra, você pode tentar:

^ [a-zA-Z]

Digamos que você queira encontrar apenas a palavra "isso", não palavras contendo as letras I e T; é onde você usaria limites de palavras.

\ b (i | I) t \ b

Pensamentos finais

As expressões regulares podem economizar uma tonelada de dores de cabeça durante a programação. Imagine tentar escrever lógica para realizar qualquer um dos exemplos neste artigo. Seria uma bagunça terrível. Depois de se sentir confortável com eles, você provavelmente vai realmente aproveitar o poder e a flexibilidade do regex.