我正在编写一个应该与一系列作者匹配的小 Python 脚本,为此我正在使用re
-module。我遇到了一些意想不到的事情,我已经能够将其简化为以下非常简单的示例:
>>> import re
>>> s = "$word1$, $word2$, $word3$, $word4$"
>>> word = r'\$(word\d)\$'
>>> m = re.match(word+'(?:, ' + word + r')*', s)
>>> m.groups()
('word1', 'word4')
所以我定义了一个“基本”正则表达式,它与我输入的主要部分相匹配,具有一些可识别的特征(在这种情况下我使用了$
- 符号),然后我尝试匹配一个单词加上一个可能的额外单词列表。
我原以为m.groups()
会显示:
>>> m.groups()
('word1', 'word2', 'word3', 'word4')
但显然我做错了什么。我想知道为什么这个解决方案不起作用以及如何更改它,以便我得到我正在寻找的结果。顺便说一句,这是在 Linux 机器上使用 Python 2.6.6,以防万一。