Python: 删除一行中某个字符和之后的所有内容

Python: removing everything including and after a certain character on a line

我有一些这样的文字:

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 或正则表达式这样的简单方法?

你可以试试这个,

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

\s* 也有助于匹配前面的垂直或水平 space 字符。 vertical space 的意思是换行符,carriage return。

DEMO

也许这就是您希望它完成您的请求的方式?

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])

如果您真的想要评论文本,可以轻松修改代码以允许捕获它。