{{category Python}} !!! matchとsearch searchはPerlと同じ。部分マッチ。グローバルオプションが意味を持つ。 matchは常に対象文字列の先頭からのマッチを行う。 !!! 後方参照 !! インデックスの数え方 m = re.match(r'((a|b|c)ddd)(.*)', s) 最初のカッコが1個目。 最初のカッコの中に含まれるサブカッコが2個目。 それから最初のカッコの後ろにあるカッコが3個目。 という風に数える。 !! 後方参照の利用方法 正規表現内では、\number が利用できる。正規表現内なので、\ はエスケープする必要がある。 m = re.match(r'(\d)\.\\1', s) re.sub()に渡す置き換え文字列の中では、同じく \number と、\g の2種類の後方参照表記が使える。\gは単に、リテラルの数字文字列と紛れないようにするための記法。 !!! グループ :m.group(0): 正規表現にマッチした文字列全体。 :m.group(1): 1個目のマッチグループ文字列。 :m.group(1, 3): 1個目のマッチグループ文字列と3個目のマッチグループ文字列のタプル。 :m.group('name'): 名前付きグループ(?P...)にマッチした文字列。 :m.groups(): すべてのマッチグループ文字列のタプル。マッチしなかったグループに対してはNoneが返される。 :m.groups('N'): すべてのマッチグループ文字列のタプル。マッチしなかったグループに対しては引数文字列が返される。 !!! グローバルマッチ re.findall、re.finditer を使う。