reモジュールは正規表現エンジンのインターフェースを提供します。reモジュールの仕様はPythonに添付されるドキュメントの「7.2. re — Regular expression operations」にあります。reモジュールを使うには、reモジュールをインポートする必要があります。
import re
関数 | 機能 |
---|---|
search | 文字列から指定されたパターンを探す |
sub | 指定されたパターンの文字列を置換 |
MatchObject | 指定されたパターンの文字列を置換 |
group | マッチ範囲全体、または指定されたグループを返す |
searchは文字列から指定されたパターンを探して、それに対応するMatchObjectインスタンスを返します。
re.search( pattern, string[, flags ])
patternには正規表現を使ってパターンを指定します。stringには入力の文字列(変換する前の文字列)を指定します。string中でpatternに一致する位置がない場合、Noneを返します。
subは指定されたパターンの文字列を指定された文字列で置き換えた文字列を返します。
re.sub( pattern, repl, string[, count, flags ])
patternには正規表現を使ってパターンを指定します。replには置き換える文字列を指定します、この引数には関数を指定することもできます。文字列で指定する場合、バックスラッシュはエスケープする必要があります。stringには入力の文字列(変換する前の文字列)を指定します。countオプションを使うと置換の最大回数を指定することができます。このオプションがゼロ、または省略されたときすべてのパターンが置換されます。
class re.MatchObject
MatchObjectは常にTrueのブール値を持っています。matchのような関数はパターンへのマッチがあるとMatchObjectを返し、そうでなければNoneを返します。MatchObjectが常にTrueであることで、match関数の結果をブール値として評価することでマッチがあったかどうかを知ることができます。
MatchObjectは以下のようなメソッドや属性を持ちます。
expand(template) |
group(マッチ範囲全体、または指定されたグループを返す) |
groups([default]) |
groupdict([default]) |
start([group]) |
end([group]) |
span([group]) |
pos |
endpos |
lastindex |
lastgroup |
re |
string |
class re.MatchObject
MatchObjectの持つマッチ範囲全体、または指定されたグループを返します。この場合のグループとは正規表現中で指定されたグループにマッチする部分を意味します。
group( [ group, ... ] )
groupにはgroupが返すグループを指定します。ゼロを指定すると、マッチの範囲全体が返ります。
m = re.match( r"(\w+)\-(\d+)", "ID-12345 test data" ) print m.group(0) # ID-12345が表示される
groupにゼロ以外の値を指定すると、それは何番目のグループを返すかという意味になります。
m = re.match( r"(\w+)\-(\d+)", "ID-12345 test data" ) print m.group(1) # IDが表示される print m.group(2) # 12345が表示される
groupは複数指定することができます。この場合、groupごとの項目を持つタプルが返されます。
m = re.match( r"(\w+)\-(\d+)", "ID-12345 test data" ) print m.group(1, 2) # ('ID', '12345')が表示される