このモジュールは以下の関数と定数および例外を定義してtます。
正規表現の動作をflags値を指定することにより変更することが出来ます。 値は以下の値を指定でき、ビット単位のOR(|演算子)を使って 組み合わせて使うことも出来ます。
このシーケンスは
prog = re.compile(pat) result = prog.match(str)
以下と同じです。
result = re.match(pat, str)
単一プログラムで何度も使われる正規表現の場合、compile()を使うバージョンの 方がより有効です。
>>> re.split('[\W]+', 'Words, words, words.') ['Words', 'words', 'words', ''] >>> re.split('([\W]+)', 'Words, words, words.') ['Words', ', ', 'words', ', ', 'words', '.', ''] >>> re.split('[\W]+', 'Words, words, words.', 1) ['Words', 'words, words.']
>>> def dashrepl(matchobj): .... if matchobj.group(0) == '-': return ' ' .... else: return '-' >>> re.sub('-{1,2}', dashrepl, 'pro----gram-files') 'pro--gram files'
オプションの引き数countは置き換えられるパターンの最大出現回数です。 countは負でない整数でなければならず、デフォルト値0はすべての出現箇所を 置き換えることを意味しています。
パターンに対する空のマッチは以前のマッチに隣接しない場合のみ置き換えられます。 従って、"sub('x*', '-', 'abc')"は'-a-b-c-'を返します。
replが文字列の場合、その中のバックスラッシュエスケープはすべて処理されます。 "\n"は1個のニューライン文字に変換され、"\r"は 1個のラインフィードに変換される等です。 "\j"のような未知のエスケープはそのまま残されます。 "\6"のような後方参照はパターン内のグループ6でマッチした部分文字列で 置き換えられます。
前述の文字エスケープと後方参照に加えて、"\g<name>"は (?P<name>...)という構文で定義されている "name"という名前のグループにマッチした部分文字列を使います。 "\g<number>"は対応するグループ番号を使います。つまり、 "\g<2>"は"\2"と同じですが、 置き換えの中では"\g<2>0"のように不明瞭にはなりません。 "\20"はグループ20に対する参照と解釈され、リテラル文字"0" を伴ったグループ2への参照とは解釈されません。
guido@python.org