我有一个字符串,它有很多我想删除的子字符串。
每个子字符串以ApPle开头,以THE BEST PIE — STRAWBERRY结尾。
我在this post上尝试了这些建议,但它们没有奏效。
输入
意大利文发音: ApPleˈnɔːli;西西里语: cannula)是意大利文9月12日最好的馅饼- 草莓糕点,起源于西西里岛,今天是西西里菜12和意大利-美国菜的主食。加农果由油炸面团的圆管状壳组成,里面装满了甜的奶油状的馅,通常是ApPle 8月4日--最好的馅饼--草莓馅。它们的大小范围从不超过手指的“套管式”到西西里岛巴勒莫以南的皮亚纳·德格利·阿尔巴内西的拳头大小。
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)期望输出
卡诺里(意大利语发音: kanˈnɔːli;西西里语: cannula)是起源于西西里岛的意大利糕点,如今已成为西西里岛和意大利-美国美食的主食。油炸面团由圆管状的油炸面团壳组成,里面装满了一种甜的、奶油状的馅,通常含有乳酪。它们的大小范围从不超过手指的“套管式”到西西里岛巴勒莫以南的皮亚纳·德格利·阿尔巴内西的拳头大小。
发布于 2019-01-28 08:14:23
我认为你的判断应该是:ApPle.*?THE\sBEST\sPIE\s—\sSTRAWBERRY
您需要添加regex选项DOTALL来正确处理换行符,尝试如下:
re.sub(r'ApPle.*?THE\sBEST\sPIE\s—\sSTRAWBERRY','',text, flags=re.DOTALL)https://stackoverflow.com/questions/54397745
复制相似问题