gpt4 book ai didi

Python Regex 删除括号中的注释或数字

转载 作者:行者123 更新时间:2023-12-04 07:47:59 25 4
gpt4 key购买 nike

我正在尝试使用正则表达式删除行号和注释,但它还不起作用:

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())
所以我试图用我的 #commented 行删除括号 () 和 [] 中的任何内容,但后来我被每行的空格开头所困扰。
然后我决定拆分它并提出五个 re.sub 方法。
结果应该是这样的:
['At', 'what', 'time', 'Schoolbus', 'So', 'late', 'already']
我被困在没有被删除的 Linenumbers 中,尽管它们在 () 中并且应该消失。然后导致我的 res.sub() 将单词与“-”从校车连接到校车无法正常工作。

最佳答案

你可以用这个sub + findall解决方案:

import re

string = """(1) At what time.!? [asdf] School-
(2) bus. So late, already.!? [ghjk]"""

print (re.findall(r'\b\w+(?:-\w+)*', re.sub(r'(\([^)]*\)|\[[^]]*\]|-)\s*', '', string)))
输出:
['At', 'what', 'time', 'Schoolbus', 'So', 'late', 'already']
详情:
  • re.sub(r'(\([^)]*\)|\[[^]]*\]|-)\s*', '', string) : 删除所有 (...)[...]-字符串后跟 0 个或多个空格
  • \b\w+ : 匹配以单词边界开头的 1+ 个单词字符
  • 关于Python Regex 删除括号中的注释或数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67113912/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com