4.2.5 MatchObject オブジェクト

MatchObject インスタンスは以下のメソッドと属性を サポートします:

expand( template)
テンプレート文字列 template に、sub() メソッドがするような バックスラッシュ置換をして得られる文字列を返します。 "\n"のようなエスケープは適当な文字に変換され、数値の後方参照 ("\1"、 "\2") と名前付きの後方参照 ("\g<1>"、 "\g<name>") は、対応するグループの 内容で置き換えられます。

group( [group1, ...])
マッチした1個以上のサブグループを返します。もし引数で一つであれば、 その結果は一つの文字列です;複数の引数があれば、その結果は、 引数ごとに一項目を持つタプルです。引数がなければ、 group1 はデフォールトでゼロです(マッチしたものすべてが 返されます)。 もし groupN 引数がゼロであれば、対応する戻り値は、マッチ する文字列全体です;もしそれが範囲 [1..99] 内であれば、それは、対応する 丸括弧つきグループとマッチする文字列です。もしグループ番号が負であるか、 あるいはパターンで定義されたグループの数より大きければ、 IndexError 例外が発生します。もしグループがマッチしなかった パターンの一部に含まれていれば、対応する結果は None です。 もしグループが、複数回マッチしたパターンの一部に 含まれていれば、 最後のマッチが返されます。

もし正規表現が (?P<name>...) シンタクスを使うならば、 groupN引数は、それらのグループ名によってグループを識別する文字列であっても 構いません。もし文字列引数がパターンのグループ名として使われていないもので あれば、IndexError 例外が発生します。

適度に複雑な例題:

m = re.match(r"(?P<int>\d+)\.(\d*)", '3.14')

このマッチを実行したあとでは、m.group(1)m.group('int') と同じく、'3' であり、そしてm.group(2)'14' です。

groups( [default])
1からどれだけ多くであろうがパターン内にあるグループ数までの、 マッチの、すべてのサブグループを含むタプルを返します。 default 引数は、マッチに加わらなかったグループ用に使われます; それはデフォールトでは None です。 (非互換性ノート:オリジナルの Python 1.5 リリースでは、たとえタプルが一要素長で あっても、その代わりに文字列を返すことはありません。(1.5.1 以降の)後のバージョンでは、 そのような場合には、シングルトンタプルが返されます。)

groupdict( [default])
すべての 名前つきのサブグループを含む、マッチの、 サブグループ名でキー付けされた辞書を返します。 default 引数はマッチに加わらなかったグループ用に 使われます;それはデフォールトでは Noneです。

start( [group])
end( [group])
groupとマッチしたサブ文字列の先頭と末尾のインデックスを 返します;group は、デフォールトでは (マッチしたサブ文字列 全体を意味する)ゼロです。 group が存在してもマッチに寄与しなかった場合は、 -1 を返します。マッチオブジェクト m および マッチに寄与しなかったグループ gがあって、 グループ g とマッチしたサブ文字列 ( m.group(g)と同じ意味ですが) は、

m.string[m.start(g):m.end(g)]

です。 もし groupがヌル文字列とマッチすれば、 m.start(group)m.end(group) と等しくなろことに 注意して下さい。例えば、 m = re.search('b(c?)', 'cba') の後では、m.start(0)は 1 で、 m.end(0) は 2 であり、 m.start(1)m.end(1) はともに 2 であり、 m.start(2)IndexError例外を発生します。

span( [group])
MatchObject m については、 2-タプル (m.start(group)、 m.end(group))を 返します。もし group がマッチに寄与しなかったら、これは (-1, -1) です。また group はデフォールトでゼロです。

pos
RegexObjectsearch() あるいは match() メソッドに渡された posの値です。 これは RE エンジンがマッチを探し始める位置の文字列のインデックスです。

endpos
RegexObjectsearch() あるいは match() メソッドに渡された endposの値です。 これは RE エンジンがそれ以上は進まない位置の文字列のインデックスです。

lastindex
最後にマッチした取り込みグループの整数インデックスです。もしどのグループも 全くマッチしなければ None です。

lastgroup
最後にマッチした取り込みグループの名前です。もしグループに名前がないか、 あるいはどのグループも全くマッチしなければ None です。

re
その match()あるいは search() メソッドが、この MatchObject インスタンスを生成した正規表現オブジェクトです。

string
match() あるいは search()に渡された文字列です。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。