Python:删除包括和在一行上某个字符之后的所有内容

时间:2015-07-31 16:50:53

标签: python regex string parsing string-formatting

我有一些类似的文字:

1.6 # blah blah blah
# fjsadfklj slkjf yes 3.4
1.8*
1.9 1.10 #blah
#blah
1.11

我想通过删除所有#字符以及在同一行上跟随它们的任何内容来清理它。换句话说,我希望:

1.6
1.8*
1.9 1.10
1.11

最好的方法是什么?通过简单的方法,如partition,还是正则表达式?

2 个答案:

答案 0 :(得分:2)

也许这可以满足您的要求吗?

example = '''1.6 # blah blah blah
# fjsadfklj slkjf yes 3.4
1.8*
1.9 1.10 #blah
#blah
1.11'''

for line in example.splitlines():
    print(line.split('#', 1)[0])

如果你真的想要评论文本,代码很容易修改,也允许它的捕获。

答案 1 :(得分:1)

你可以试试这个,

re.sub(r'\s*#.*', '', s)

\s*将有助于匹配前面的垂直或水平空格字符。我所说的垂直空间是换行符,回车符。

DEMO