34

このコードを実行すると:

print re.search(r'1', '1').groups() 

の結果が得られ()ます。しかし、.group(0)私に試合を与えます。

groups()一致を含むものを私に与えるべきではありませんか?

更新: 回答ありがとうございます。つまり、re.search()サブグループ使用しない場合groups(0)、一致を取得するために使用する必要がありますか?

4

4 に答える 4

25

私の知る限り、記憶されているグループ.groups()のタプルを返します。つまり、括弧で囲まれた正規表現内のグループ。だからあなたが書くとしたら:

print re.search(r'(1)', '1').groups()

あなたが得るだろう

('1',)

あなたの応答として。一般に、.groups()は、括弧で囲まれた正規表現内のオブジェクトのすべてのグループのタプルを返します。

于 2011-09-05T19:39:44.570 に答える
23

キャプチャ グループがないため、 groups は空です - http://docs.python.org/library/re.html#re.MatchObject.groups。group(0) は、グループでキャプチャされたかどうかに関係なく、一致したテキスト全体を常に返します

編集しました。

于 2011-09-05T19:28:48.837 に答える
5

これは、キャプチャグループがないためです(()パターンで使用しないため)。 http://docs.python.org/library/re.html#re.MatchObject.groups

そしてgroup(0)、検索結果全体を返します(キャプチャグループがまったくない場合でも): http ://docs.python.org/library/re.html#re.MatchObject.group

于 2011-09-05T19:36:14.863 に答える
5

正規表現にグループがないため、()結果として空のリスト()が表示されます。

試す

re.search(r'(1)', '1').groups()

キャプチャグループを作成する角かっこを使用すると、パターンのこの部分に一致する結果がグループに保存されます。

次に、

('1',)

結果として。

于 2011-09-05T19:37:18.217 に答える