Как удалить несколько кавычек и строк в двойных кавычках из файла .txt в коде Python? - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть текстовый файл с несколькими строками, и некоторые из них заключены в двойные (или тройные) кавычки, и я хотел бы удалить то, что находится внутри кавычек и осталось только кавычки. Пример:

""" aaaa """

bbbbb
ccccc

"""
dddddd
"""

и должен выглядеть так:

""" """

bbbbb
ccccc

"""

"""

Я должен сделать это в Python. У кого-нибудь есть идея модуля, который это делает?

1 Ответ

0 голосов
/ 05 ноября 2019

Вы можете попробовать использовать следующее регулярное выражение:

s = '''
""" aaaa """

bbbbb
ccccc

"""
dddddd
"""
'''

import re
print(re.sub(r'(\"{2,3}[\s\n]*).*?([\n\s]*\"{2,3})', r'\1\2', s, flags=re.MULTILINE))

это выводит:

"""  """

bbbbb
ccccc

"""

"""

РЕДАКТИРОВАТЬ: для соответствия многострочному в кавычках необходимо обновить регулярное выражение. Вот пример:

s = '''
""" aaaa """

bbbbb
ccccc

"""
dddddd
bb
"""
'''

import re

print(re.sub(r'(\"{2,3}[\s\n]*)(?:.*?[\s\n]*)*([\n\s]*\"{2,3})', r'\1\2', s, flags=re.MULTILINE))

дает вывод:

""" """

bbbbb
ccccc

"""
"""
...