Remover parte do texto utilizando Python (Regex)

Olá Pessoal, estou tentando remover parte de um texto utilizando python (regex) porém não estou obtendo sucesso.
O texto que estou trabalhando segue este padrão… todo o conteúdo que está dentro das # eu quero remover incluindo as #
Este texto não está em um arquivo

###############################################################################
# !!! ATENCAO !!! ATENCAO !!! ATENCAO !!! ATENCAO !!! ATENCAO !!! ATENCAO !!! #
#                                                                             #
# ESTE TEXTO EU QUERO REMOVER                                                 #
# ESTE TEXTO EU QUERO REMOVER                                                 #
# ESTE TEXTO EU QUERO REMOVER                                                 #
# ESTE TEXTO EU QUERO REMOVER                                                 #
# ESTE TEXTO EU QUERO REMOVER                                                 #
# ESTE TEXTO EU QUERO REMOVER                                                 #
###############################################################################

Este texto eu quero manter.
  
 Tudo que está aqui eu quero salvar ,.... ate o fim do texto 

não importa a forma o desde que seja em Python…
alguém tem alguma ideia?

>>> import re
>>> my_regex = "\(.*\)|\s-\s.*"

>>> example = 'Year 1.2 Q4.1 (Section 1.5 Report (#222))'
>>> example2 = 'Year 2-7 Q4.8 - Data markets and phases'

>>> re.sub(my_regex, "", example)
'Year 1.2 Q4.1'
>>> re.sub(my_regex, "", example2)
'Year 2-7 Q4.8'

utilize um regular expression e remova o texto co re.sub

exemplo
no bash

sed 's/^#.*//g' teste
e depois

sed ':a;N;$!ba;s/\n/ /g

não conheço
python

seria algo assim

"\^#.*\s-\s.*"

https://www.w3schools.com/python/python_regex.asp

1 curtida

Opa @swatquest fiz uns testes aqui com suas dicas e deu certo… vlw
Então eu fiz assim…
texto_limpo = re.sub("#.*","", texto_completo)
o regex #.* é o suficiente para selecionar a parte que quero remover…
depois então eu uso re.sub

Use re.sub() to search and replace the pattern in a given string. Read here.

  • First, Write pattern #.* here we are matching string with symbol ‘#’ followed by zero or or any number of letter
  • Next, use the re.sub(r"#.+", '', text) method to replace regex pattern with empty space.
  • Next, re.sub() return the replaceed string. use strip() method to remove unnecssary leading and traling spaces from it.

Code:

import re

text = '''###############################################################################
# !!! ATENCAO !!! ATENCAO !!! ATENCAO !!! ATENCAO !!! ATENCAO !!! ATENCAO !!! #
#                                                                             #
# ESTE TEXTO EU QUERO REMOVER                                                 #
# ESTE TEXTO EU QUERO REMOVER                                                 #
# ESTE TEXTO EU QUERO REMOVER                                                 #
# ESTE TEXTO EU QUERO REMOVER                                                 #
# ESTE TEXTO EU QUERO REMOVER                                                 #
# ESTE TEXTO EU QUERO REMOVER                                                 #
###############################################################################'''

result = re.sub(r"#.+", '', text)
print(result.strip())
1 curtida