![](/img/trans.png)
[英]Remove string characters from a given found substring until the end in Python
[英]remove substring until end of the line
我有一个字符串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_all("to be removed...\\r\\n" ,"")
这样输出看起来像这样:
"row 2 blah blah\\r\\nrow 3 more blah blah\\r\\nrow5 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])
另一个尝试可能是re
模块的search
和sub
功能的组合-
>>> 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.