pythonの正規表現のオブジェクトの流れ【re.compile()を使う】

  • このエントリーをはてなブックマークに追加

re.compile()を使ったほうがわかりやすい

re.compile()で正規表現オブジェクトを生成しよう

  1. import reでインポートする。
  2. re.compile()で正規表現オブジェクトを生成する。 例:re.compile(r’\d+’)
  3. search()メソッドに渡した文字列から検索する 例:zisoku.search(‘時速100km’)
  4. 正規表現オブジェクトでsearch()を使うとmatchオブジェクトを返す
  5. matchオブジェクトgroup()メソッドを呼び出すと、実際にマッチした文字列を取得

2つのパターンがある

  1. 上の例のように最初に正規表現オブジェクトを作ってからsearch()で検索をかける
  2. search(hoge, foo)に検索に使う文字列と、検索したい文字列を渡す
    hoge =’\d+’ foo=’時速100km’

 

どちらかというと今回ご紹介するパターンのほうがわかりやすいと思います。前回の記事「pythonの正規表現のオブジェクトの流れ」では2の方法を使っています。

re.compile()を使った実際のコード

import re
zisoku = re.compile(r'\d+')
mo = zisoku.search('時速100km')
print(mo)#<_sre.SRE_Match object; span=(2, 5), match='100'>
print(type(mo))#<class '_sre.SRE_Match'>
print(mo.group())#100

見ていただいたらわかると思いますが print(mo)のmoはmatchオブジェクトです。

matchオブジェクトにgroup()を使うことにより、文字列が返ってきます。ここでmatchオブジェクトと言っていますがmatch()メソッドとはなんの関係もないので混同しないようにしてください。最後になりますが、re.compile(r”)のr’’の部分はraw文字列と言います。

raw文字列は筆者の知識の範囲をこえるので説明はしませんが、上のコードですとr”はなくてもre.compile(‘ ‘)でも一応見つけることはできます。

 
  • このエントリーをはてなブックマークに追加
     

SNSでもご購読できます。

コメントを残す

*

CAPTCHA