Regex

Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #23364
    Nelson
    Participante

      Boa tarde. Tenho um texto que gostaria de retirar/substituir de uma vez só algumas palavras que estão numa lista.

      Exemplo:

      texto_antes = “gostaria de solicitar um novo documento para o meu trabalho”

      lista = [“documento”, “trabalho”]

      texto_depois = “gostaria de solicitar um novo ###### para o meu #####”

      Tentei o re.sub e o replace, mas não consegui chegar no resultado esperado acima.

      Alguma dica de como conseguiria chegar no “texto_depois”?

      Obrigado.

      • Este tópico foi modificado 3 anos, 11 meses atrás por Nelson.
      • Este tópico foi modificado 3 anos, 11 meses atrás por Nelson.
      #23367

      Olá Nelson, boa noite!

      O método replace só substitui uma string por vez. E ele não faz substituições cumulativas. Ele sempre substitui a string original. Isso significa que se você tentar aplicar o método, ele faz isso

       

      ‘gostaria de solicitar um novo ##### para o meu trabalho’

      ‘gostaria de solicitar um novo documento para o meu ######’

       

      Pois o método não é cumulativo. Uma forma de fazer as duas substituições (e quantas mais você quiser) seria preencher uma lista e ir substituindo aos poucos

       

      texto_antes = 'gostaria de solicitar um novo documento para o meu trabalho'
      
      lista = ['documento', 'trabalho']
      
      
      substituidos = [texto_antes]
      
      for i in lista:
        substituto_mais_recente = substituidos[-1].replace(i,'#####')
        substituidos.append(substituto_mais_recente)
      
      texto_depois = substituidos[-1]
      
      print(texto_depois)
      

       

      Qualquer dúvida sobre como esse código acima funciona é só perguntar

      Espero ter ajudado

      #23371
      Nelson
      Participante

        Excelente ! Funcionou. Muito obrigado !

        #44824
        Jones Granatyr
        Moderador

          Que bom que deu certo!

        Visualizando 4 posts - 1 até 4 (de 4 do total)
        • Você deve fazer login para responder a este tópico.