Python re: 没有这样的组

2 投票
2 回答
7904 浏览
提问于 2025-04-15 15:25

我刚开始学习Python,搞不懂为什么这段代码不管用:

reOptions = re.search(
    "[\s+@twitter\s+(?P<login>\w+):(?P<password>.*?)\s+]",
    document_text)
if reOptions:
    login = reOptions.group('login')
    password = reOptions.group('password')

我遇到了一个错误:

IndexError: no such group

关于document_text

Blah-blah
[ @twitter va1en0k:somepass ]

2 个回答

4

你需要对方括号 [ 和 ] 进行转义,也就是在它们前面加一个反斜杠,变成 \[\]

\[\s+@twitter\s+(?P<login>\w+):(?P<password>.*?)\s+\]
3

在正则表达式中,[] 是特殊的字符。如果你想要匹配字面上的 [],需要对它们进行转义。想了解更多,可以查看正则表达式语法

撰写回答