Python 删除子字符串,直到行结束

Python 删除子字符串,直到行结束,python,regex,string,Python,Regex,String,我有一个字符串a a="to be removed blah blah \r\nrow 2 blah blah\r\nrow 3 more blah blah \r\nto be removed more blah blah \r\nrow 5 final blah blah" 我想基本上做到以下几点 a=a.replace\u all(“待删除…”\r\n“,”) 因此,输出如下所示: “第2行诸如此类的废话\r\n再看3行诸如此类的废话\r\n再看5行最后诸如此类的废话” 但是,我只知道行

我有一个字符串
a

a="to be removed blah blah \r\nrow 2 blah blah\r\nrow 3 more blah blah \r\nto be removed more blah blah \r\nrow 5 final blah blah"
我想基本上做到以下几点
a=a.replace\u all(“待删除…”\r\n“,”)

因此,输出如下所示:

“第2行诸如此类的废话\r\n再看3行诸如此类的废话\r\n再看5行最后诸如此类的废话”


但是,我只知道行是如何开始的,而不知道其余的

使用
re.sub
并放置一个重复的通配符
*
,该通配符不包含
\r\n

>>> import re
>>> a = "to be removed blah blah \r\nrow 2 blah blah\r\nrow 3 more blah blah \r\nto be removed more blah blah \r\nrow 5 final blah blah"
>>> a = re.sub(r'to be removed.*?\r\n', '', a)
>>> a
'row 2 blah blah\r\nrow 3 more blah blah \r\nrow 5 final blah blah'

使用
re.sub
并放置一个通配符
,重复
*
,该通配符不包含
\r\n

>>> import re
>>> a = "to be removed blah blah \r\nrow 2 blah blah\r\nrow 3 more blah blah \r\nto be removed more blah blah \r\nrow 5 final blah blah"
>>> a = re.sub(r'to be removed.*?\r\n', '', a)
>>> a
'row 2 blah blah\r\nrow 3 more blah blah \r\nrow 5 final blah blah'

不使用正则表达式的另一种方法:

>>> a = "\r\n".join([i for i in a.splitlines() if not 'to be removed' in i])

不使用正则表达式的另一种方法:

>>> a = "\r\n".join([i for i in a.splitlines() if not 'to be removed' in i])

另一种尝试可能是组合
搜索
模块的
re
功能-

>>>  a = "to be removed blah blah \r\nrow 2 blah blah\r\nrow 3 more blah blah \r\nto be removed more blah blah \r\nrow 5 final blah blah"
>>>  r = re.sub(re.search(r'to be removed blah blah[\s]+', a,re.I).group(), '', a)
>>>  print r

另一种尝试可能是组合
搜索
模块的
re
功能-

>>>  a = "to be removed blah blah \r\nrow 2 blah blah\r\nrow 3 more blah blah \r\nto be removed more blah blah \r\nrow 5 final blah blah"
>>>  r = re.sub(re.search(r'to be removed blah blah[\s]+', a,re.I).group(), '', a)
>>>  print r