pyre2を使ってみた

以下のページでGoogleが公開している RE2 というライブラリがあるのを知りました。

正規表現ライブラリ RE2 と、そのRubyバインディング RRE2 を試した – quredo-style

Pythonで使う

Pythonでも pyre2 というモジュールが公開されていたので少し使用してみました。 (pyre2は初期の頃はFacebookが開発していたみたい。) インストールは以下です。

$ sudo apt-get install libre2-dev
$ pip install re2

pyre2の使用感は Python標準モジュールのre とほぼ同じで、以下のようなコードで 簡単に置き換えることが可能です。

import re2 as re

ベンチマーク

簡単なベンチマークをとってみました。 re.search、re.sub、pyre2のURI/Emailアドレスを検索するサンプルをそれぞれ100回 実行しました。短い程実行速度が速くなっています。

http://image.hexacosa.net/images/container/0000000000000428_M.png

http://www.hexacosa.net/hgrepos/python-snipets/file/tip/re_benchmark

まとめ

Python標準モジュールより速くなる場合と遅くなる場合があるので、 状況に応じて使用すると効果的かもしれません。