0

http://docs.python.org/howto/regex.htmlセクションNon-capturing and named groups を参照すると、出力が自明ではない例を見ました。

  >>> import re

  >>> m = re.match(r"([abc])+", "abc")
  >>> m.groups()

 ('c',)

ここで、group(1) が「c」である理由と、最後にカンマがぶら下がっている理由を理解できません。誰か助けてくれませんか?

4

1 に答える 1

2

ぶら下がっているコンマについてはわかりませんが、最初のグループはです。これは、文字グループの後にではなく、グループcの後にグループを繰り返すようにするためです。+

このように、正規表現は最初aにグループ1に割り当てられたに一致します。次に、グループ1にbも割り当てられたに一致します。最後に、cグループ1に割り当てられたに一致して終了します。したがって、グループ1をに残しますc

と書く([abc]+)と、グループ1はになりますabc

于 2012-08-27T11:51:27.400 に答える