我想删除给定文件中以*开头的所有行。例如,以下内容:
* This needs to be gone
But this line should stay
*remove
* this too
End
应该生成这个:
But this line should stay
End
我最终需要做的是:
到目前为止,我能够通过以下方式解决#1:re.sub(r'[.?]|(.*?)', '', fileString)
。我为#2尝试了几件事,但总是最终删除了我不想要的东西
解决方案1(无正则表达式)
>>> f = open('path/to/file.txt', 'r')
>>> [n for n in f.readlines() if not n.startswith('*')]
解决方案2(正则表达式)
>>> s = re.sub(r'(?m)^\*.*\n?', '', s)
感谢大家的帮助。
答案 0 :(得分:5)
答案 1 :(得分:1)
你不需要正则表达式。
text = file.split('\n') # split everything into lines.
for line in text:
# do something here
如果您需要更多帮助,请告诉我们。
答案 2 :(得分:1)
你应该在这里提供更多信息。至少,你正在使用什么版本的python和一个代码片段。但是,那说,为什么你需要一个正则表达式?我不明白为什么你不能只使用startwith。
以下适用于Python 2.7.3
s = '* this line gotta go!!!'
print s.startswith('*')
>>>True
答案 3 :(得分:1)
>>> f = open('path/to/file.txt', 'r')
>>> [n for n in f.readlines() if not n.startswith('*')]
['But this line should stay\n', 'End\n']