我有一个字符串,并且有许多我要删除的子字符串。
每个子字符串以ApPle
开头,以THE BEST PIE — STRAWBERRY
结尾。
我尝试了this post上的建议,但没有用。
输入
Cannoli(意大利语的发音:[kanˈnɔːli];西西里语:插管) Italian ApPle Sep 12 THE BEST PIE —
草莓糕点 起源于西西里岛,今天是西西里人的主食 美食1 [2]以及意大利裔美国人美食。 煎饼卷组成 油炸糕点面团的管状外壳,里面充满了甜甜的奶油 通常灌装ApPle 8月4日最佳派—草莓 凝乳。它们的大小从“ cannulicchi”到不超过 手指,通常位于拳头以南的拳头大小比例 西西里岛的巴勒莫,位于Piana degli Albanesi。[2]
import re
array = []
#open the file and delete new lines
with open('canoli.txt', 'r') as myfile:
file = myfile.readlines()
array = [s.rstrip('\n') for s in file]
text = ' '.join(array)
attempt1 = re.sub(r'/ApPle+THE.BEST.PIE.-.STRAWBERRY/','',text)
attempt2 = re.sub(r'/ApPle:.*?:THE.BEST.PIE.-.STRAWBERRY/','',text)
print(attempt1)
print(attempt2)
所需的输出
Cannoli(意大利语的发音:[kanˈnɔːli];西西里语:插管) 意大利糕点 起源于西西里岛,今天是西西里人的主食 Cuisine1 [2]以及意大利美式美食。煎饼卷组成 油炸糕点面团的管状外壳,里面充满了甜甜的奶油 填充物通常包含 凝乳。它们的大小从“ cannulicchi”到不超过 手指,通常位于拳头以南的拳头大小比例 西西里岛的巴勒莫,位于Piana degli Albanesi。[2]
答案 0 :(得分:1)
我认为您的正则表达式应为:ApPle.*?THE\sBEST\sPIE\s—\sSTRAWBERRY
,您需要添加regex选项DOTALL才能正确处理换行符,请尝试以下操作:
re.sub(r'ApPle.*?THE\sBEST\sPIE\s—\sSTRAWBERRY','',text, flags=re.DOTALL)