我正在尝试使用正则表达式删除行号和注释,但它目前还不起作用:
import re
string = """(1) At what time.!? [asdf] School-
(2) bus. So late, already.!? [ghjk]"""
#res = re.sub(r"[\(\[].*?[\)\]]", "", string)
res = re.sub("(\d+) ","", res)
res = re.sub("[.*]","", res)
res = re.sub(r"-\s","", res)
res = re.sub(r"[^\w\säüöß]","", res)
res = re.sub("-\n","", res)
print(res.split())
因此,我试图删除括号()和[]中带有#注释行的任何内容,但随后我被困在每行开头的空白处。 然后我决定将其拆分,并提出了五种re.sub方法
结果应该是这样的:
['At', 'what', 'time', 'Schoolbus', 'So', 'late', 'already']
虽然行号在()中并且应该消失,但我仍然无法删除它们。这会导致我的res.sub()将单词和“-”从校车连接到校车时也无法正常工作
您可以使用此
sub + findall
解决方案:输出:
详细信息:
re.sub(r'(\([^)]*\)|\[[^]]*\]|-)\s*', '', string)
:删除所有(...)
和[...]
或-
字符串,后跟0或更多空格\b\w+
:匹配以单词边界开头的1+个单词字符相关问题 更多 >
编程相关推荐