⊗pyPmRESF 73 of 129 menu

Bandeiras para strings de expressões regulares em Python

Para definir bandeiras como um dos parâmetros opcionais para os métodos que trabalham com expressões regulares, usa-se a seguinte sintaxe:

flags=re.nome_da_bandeira

Principais bandeiras para trabalhar com expressões regulares

Bandeira Finalidade
re.IGNORECASE Ignora o caso de escrita dos caracteres.
re.DOTALL O ponto corresponde a qualquer caractere, incluindo quebra de linha.
re.I Torna a pesquisa insensível ao caso.
re.L Busca palavras de acordo com o idioma atual. Esta interpretação afeta o grupo alfabético (\w e \W), bem como o comportamento do limite de palavra (\b e \B).
re.M O caractere $ realiza a busca no final de qualquer linha de texto (não apenas no final do texto) e o caractere ^ realiza a busca no início de qualquer linha de texto (não apenas no início do texto).
re.S Altera o significado do ponto (.) para corresponder a qualquer caractere, incluindo nova linha.
re.U Interpreta letras de acordo com o conjunto de caracteres Unicode. Esta bandeira afeta o comportamento de \w, \W, \b, \B. No Python 3+ esta bandeira está definida por padrão.
re.X Permite a sintaxe de expressão regular multilinha. Ele ignora espaços em branco dentro do padrão (exceto espaços dentro de um conjunto [] ou quando escapados com uma barra invertida) e trata o '#' não escapado como um comentário.

Exemplo

Com a bandeira re.IGNORECASE é possível ignorar o caso dos caracteres. Vamos ver como isso é feito. Neste exemplo, a expressão regular encontrará apenas letras minúsculas:

txt = 'aaa bbb CCC DDD' res = re.sub('[a-z]+', '!', txt) print(res)

Resultado da execução do código:

'! ! CCC DDD'

Exemplo

E agora adicionamos no quarto parâmetro do método a bandeira re.IGNORECASE e a expressão regular começará a buscar caracteres em todos os casos:

txt = 'aaa AAA bbb BBB' res = re.sub('[a-z]+', '!', txt, flags=re.IGNORECASE) print(res)

Resultado da execução do código:

'! ! ! !'

Exemplo

Vamos encontrar todas as quebras de linha com a expressão regular:

txt = '''aaa bbb''' res = re.sub('\n', '!', txt) print(res)

Resultado do código executado:

'aaa!bbb'

Exemplo

Mas, se for necessário substituir todos os caracteres, ao colocar um ponto na expressão regular, as quebras de linha não serão capturadas:

txt = '''aaa bbb''' res = re.sub('.', '!', txt) print(res)

Resultado do código executado:

'!!! !!!'

Exemplo

Para corrigir este erro, deve-se aplicar a bandeira re.DOTALL:

res = re.sub('.', '!', txt, flags=re.DOTALL) print(res)

Resultado do código executado:

'!!!!!!!'

Exemplo

No parâmetro, também podem ser passadas várias bandeiras, colocando o operador + entre elas. Vamos primeiro substituir a letra 'a' no final da string:

txt = ''' aaa AAA aaa''' res = re.sub('aaa , '!', txt) print(res)

Resultado do código executado:

''' aaa AAA ! '''

Exemplo

Agora vamos definir a bandeira re.M:

res = re.sub('aaa , '!', txt, flags=re.M) print(res)

Resultado do código executado:

''' ! AAA ! '''

Exemplo

Agora vamos aplicar também a bandeira para ignorar o caso:

res = re.sub('aaa , '!', txt, flags=re.M+re.IGNORECASE) print(res)

Resultado do código executado:

''' ! ! ! '''
Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar