Kre Download

Pythonの日本語対応正規表現モジュールkreです。

kre.py
test.py

なにができるの?
実行例をごらんくださいな。
> python test.py
kre.match("あ[か-こ]*さ","あかきくけこけくきかさ").group()
あかきくけこけくきかさ

kre.search("最初(うきゅ)*最後","最初うきゅ最後ここは無視最初うきゅうきゅうきゅ最後ここも無視").group()
最初うきゅ最後

kre.split("最初(うきゅ)*最後","最初うきゅ最後ここは無視最初うきゅうきゅうきゅ最後ここも無視")[0]
ここは無視

kre.split("最初(うきゅ)*最後","最初うきゅ最後ここは無視最初うきゅうきゅうきゅ最後ここも無視")[1]
ここも無視

kre.findall("最初(うきゅ)*最後","最初うきゅ最後ここは無視最初うきゅうきゅうきゅ最後ここも無視")[0]
最初うきゅ最後

kre.findall("最初(うきゅ)*最後","最初うきゅ最後ここは無視最初うきゅうきゅうきゅ最後ここも無視")[1]
最初うきゅうきゅうきゅ最後

kre.sub("い","井","いまのうちにいっぱいいっておいたほうがいいんでないかい")
井まのうちに井っぱ井井ってお井たほうが井井んでな井か井

kre.sub("い",lambda m:"イ","いまのうちにいっぱいいっておいたほうがいいんでないかい")
イまのうちにイっぱイイっておイたほうがイイんでなイかイ

kre.subn("い",lambda m:"イ","いまのうちにいっぱいいっておいたほうがいいんでないかい")
('\245\244\244\336\244\316\244\246\244\301\244\313\245\244\244\303\244\321\245\244\245
\244\244\303\244\306\244\252\245\244\244\277\244\333\244\246\244\254\245\244\245\244
\244\363\244\307\244\312\245\244\244\253\245\244', 9)
			
どうやってるの?
grepのmulti byteパッチのドキュメントにあるような正規表現の翻訳を行なっています。
あいう -> (あ)(い)(う)
あい*う -> (あ)(い)*(う)
etc...
内部で2種類のパターンを使い分けているためkre.compileはありません。 それ以外のメソッド
  • search
  • match
  • split
  • findall
  • sub
  • subn
はオリジナルのreと同じ動きをすると思います。

更新履歴

日付 バージョン 内容
2000/02/15 0.0 とりあえずおいてみるの

バグレポート、その他はこちらへ。
Last modified: Sat Feb 8 10:09:59 JST 2003