2
respostas

Regex

Não entendi essa regex...

str.replace('\{|}|\"' , '' , regex= True)

Qual a função da \ e do |... Se a \ é para indicar que o caracter seguinte deve ser interpretado literalmente, porque a regex : str.replace('\{\}\"' , '' , regex= True) ; não teve o mesmo efeito da primeira regex acima?

poderia explicar o caracter \ e o caracter | ???

2 respostas

Olá Ceilton, tudo certinho?

A expressão str.replace('\{|}|\"', '', regex=True) está usando uma expressão regular (regex) para encontrar e substituir certos caracteres em uma string.

O uso da barra invertida \, ela é usada para 'escapar' caracteres especiais. Por exemplo, { , } e " são caracteres especiais. Para que sejam interpretados literalmente, usamos \ antes deles.

Já o | é um operador "OU" em regex. Ele permite combinar múltiplos padrões.

Portanto, considerando o código str.replace('\{|}|\"' , '' , regex= True):

  • \{ significa "encontrar uma chave aberta literal {".

  • \} significa "encontrar uma chave fechada literal }".

  • \" significa "encontrar uma aspa dupla literal ".

  • O, \{|}|\" significa "encontrar uma chave aberta { OU uma chave fechada } OU uma aspa dupla "".

Quanto as diferenças dos regex, enquanto a primeira (str.replace('\{|}|\"', '', regex=True)), ela está escapando os caracteres {, } e ", e usando | para combinar esses padrões. Ao encontrar qualquer um desses caracteres, ela substitui por uma string vazia. Já a segunda (str.replace('\{\}\"', '', regex=True)), note que ela não está usando | para combinar os padrões, mas sim uma sequência literal, o que também funciona. Testei e obtive o mesmo resultado.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Espero ter ajudado.

Qualquer dúvida, compartilhe no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Bom dia. Quando eu estava fazendo esse curso, as regex´s deram resultados diferentes. Vou abrir esse notebook e testar novamente. Obrigado