pythonの正規表現モジュール
pythonは、正規表現が組み込みではなく、モジュール化されているのですが、その関係がちょっとややこしい。
http://rakunet.org/TSNET/TSpython/14/427.html
ちょっと調べただけで、regex, pcre, sre, reという4つのモジュールが出てきて、基本的にreを使うみたいなのだけれど、reとpcreは違うみたい。なんか、上のスレッドでは、pcreはobsoleteではないかという話になっているけど・・・
-
-
- -
-
とりあえず、ネストした括弧にマッチできるように、下のような正規表現を書いたのだけれど、reモジュールではコンパイルできない。
p = re.compile(r""" (?P<pn> \( ( (?:[^()]+) |(?P=pn) )* \)) """,re.X);
-
-
- -
-
preモジュールを見つけた。deprecateだと怒られるが、使えるようだ。下のコードのコンパイルが通った
p = pre.compile(r""" (?P<pn> \( ( (?:[^()]+) |(?P=pn) )* \)) """,pre.X);