このコードを実行すると:
_print re.search(r'1', '1').groups()
_
_()
_の結果を取得します。ただし、.group(0)
は一致を示します。
groups()
は一致を含むものを提供してはいけませんか?
更新:答えてくれてありがとう。つまり、サブグループなしでre.search()
を実行すると、haveを使用してgroups(0)
を使用して一致しますか?
キャプチャグループがないため、グループは空です- http://docs.python.org/library/re.html#re.MatchObject.groups 。 group(0)は、グループでキャプチャされたかどうかにかかわらず、一致したテキスト全体を常に返します。
編集済み。
私の知る限り、.groups()
はremembered groupsのタプルを返します。つまり括弧で囲まれた正規表現のグループ。だからあなたが書く場合:
_print re.search(r'(1)', '1').groups()
_
あなたは得るだろう
_('1',)
_
あなたの応答として。一般に、.groups()
は、括弧で囲まれた正規表現内のオブジェクトのすべてのグループのタプルを返します。
これは、キャプチャグループがないためです(パターンで_()
_を使用しないため)。 http://docs.python.org/library/re.html#re.MatchObject.groups
group(0)
は、検索結果全体を返します(キャプチャグループがまったくない場合でも): http://docs.python.org/library/re.html#re.MatchObject.group
正規表現にグループがないため、空のリスト(()
)結果として。
試してみる
re.search(r'(1)', '1').groups()
キャプチャグループを作成するかっこを使用すると、パターンのこの部分に一致する結果がグループに保存されます。
その後、あなたは得る
('1',)
結果として。