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。
也许这就是您希望它完成您的请求的方式?
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.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。
也许这就是您希望它完成您的请求的方式?
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])
如果您真的想要评论文本,可以轻松修改代码以允许捕获它。