gpt4 book ai didi

python - 正则表达式错误 : unbalanced parenthesis at position n

转载 作者:行者123 更新时间:2023-12-05 02:30:41 26 4
gpt4 key购买 nike

我一直想用正则表达式从以下字符串中提取月份名称,尽管我的正则表达式可以在像 regex101 这样的平台上运行,但我似乎无法提取“八月”这个词。

import re
s = "word\anyword\2021\August\202108_filename.csv"
re.findall("\d+\\([[:alpha:]]+)\\\d+", s)

这会导致以下错误:

error: unbalanced parenthesis at position 17

我也尝试使用 re.compilere.escape,按照之前处理相同错误的帖子的建议,但它们似乎都不起作用。

非常感谢任何帮助以及为什么这不起作用的一点解释。

最佳答案

你可以使用

import re
s = r"word\anyword\2021\August\202108_filename.csv"
m = re.search(r"\d+\\([a-zA-Z]+)\\\d+", s)
if m:
print(m.group(1))

参见 Python demo .

这里主要存在三个问题:

  • 输入字符串应与 regex101.com 中使用的相同,即您需要确保在 Python 代码中使用文字反斜杠,因此输入文本和正则表达式都使用原始字符串文字
  • POSIX 字符类是 not supported by Python re ,所以 [[:alpha:]]+ 应该替换为一些等效的模式,比如 [A-Za-z]+[^\W\d_]+
  • 因为您似乎只期望一个匹配项(字符串中只有一个 August(月份)名称),所以您不需要 re.findall,您可以使用 re.search。仅在需要从字符串中提取多个匹配项时才使用 re.findall

另请参阅这些帖子:

关于python - 正则表达式错误 : unbalanced parenthesis at position n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71755896/

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