Embora existam várias etapas para usar expressões regulares em Python, cada etapa é bastante simples.
1. Importe o módulo regex com import re.
2. Crie um objeto Regex com a função re.compile(). (Lembre-se de usar uma string bruta.)
3. Passe a string que deseja pesquisar no método search() do objeto Regex. Isto retorna um objeto Match.
4. Chame o método Match group() para retornar uma string do texto real correspondido.
Para aprender a escrever RE, vamos primeiro esclarecer alguns dos princípios básicos. Em RE, usamos literais ou metacaracteres. Os literais são os próprios caracteres e não têm nenhum significado especial.
Aqui está um exemplo em que eu uso literais para encontrar uma string específica no texto usando o método findall() do módulo re.
Resultado
['Joao']
Como você pode ver, usamos a própria palavra ‘Joao’ para encontrá-la no texto. Isso pode não parecer uma boa ideia quando temos que extrair milhares de nomes de um corpus de texto. Para fazer isso, precisamos encontrar um padrão específico e usar metacaracteres.
Metacaracteres
Metacaracteres são caracteres com um significado especial e não são interpretados como são, o que acontece com os literais. Podemos classificar ainda mais os metacaracteres em identificadores e modificadores.
Os identificadores são usados para reconhecer um certo tipo de caracteres. Por exemplo, para encontrar todos os caracteres numéricos em uma string, podemos usar um identificador ‘/d’
Resultado
['5', '2', '0']
Mas parece haver um problema com isso. Ele retorna apenas números de um dígito e, pior ainda, divide o número 23 em dois dígitos. Então, como podemos resolver esse problema, o uso de dois \d pode ajudar?
Resultado
['20']
Usar dois identificadores ajudou, mas agora ele só consegue encontrar números de dois dígitos, o que não é o que queríamos.
Uma maneira de resolver esse problema são os modificadores, mas primeiro, aqui estão alguns identificadores que podemos usar em Python. Usaremos alguns deles nos exemplos que faremos na próxima seção.
\d = qualquer número
\D = qualquer coisa menos um número
\s = espaço
\S = qualquer coisa menos um espaço
\w = qualquer letra
\W = qualquer coisa menos uma letra
. = qualquer caractere, exceto para uma nova linha
\b = espaço ao redor de palavras inteiras
\. = período. deve usar uma barra invertida, porque ‘. 'Normalmente significa qualquer personagem.
Os modificadores são um conjunto de metacaracteres que adicionam mais funcionalidade aos identificadores. Voltando ao exemplo acima, veremos como podemos usar um modificador “+” para obter números de qualquer comprimento da string. Este modificador retorna uma string quando corresponde a 1 ou mais caracteres.
Resultado
['5', '20']
Excelente! finalmente, obtivemos os resultados desejados. Usando o modificador ‘+’ com o identificador / d, posso extrair números de qualquer comprimento. Aqui estão alguns dos modificadores que também usaremos na seção de exemplos a seguir.
+ = corresponde a 1 ou mais
? = corresponde a 0 ou 1 repetições.
* = corresponde a 0 ou MAIS repetições
$ = corresponde ao final da string
^ = corresponde ao início de uma string
| = corresponde a / ou. Exemplo x | y = corresponderá a x ou y
[] = Um conjunto de caracteres em que definimos intervalo ou "variação"
{x} = espera ver essa quantidade do código anterior.
{x, y} = espera ver esses valores x-y do código anterior
Você notou que estamos usando o caractere r no início de todos os RE, este r é chamado de literal de string bruta. Ele muda a forma como a string literal é interpretada. Esses literais são armazenados conforme aparecem.
Por exemplo, \ é geralmente interpretado como uma sequência de escape, mas é apenas uma barra invertida quando prefixado com um r. Você verá o que isso significa com caracteres especiais. Às vezes, a sintaxe envolve caracteres de escape com barra invertida e, para evitar que esses caracteres sejam interpretados como sequências de escape, usamos esses literais de string brutos.
No Próximo capítulo iremos ver alguns exemplos de expressão regular em Python.
0 Comentários