2008年12月16日火曜日

グループ定義の均等化 Balancing group definition

グループ定義の均等化と言われても、何のことかさっぱり想像がつきませんが、.NET Frameworkの正規表現に不思議な機能があります。実際、役立つシーンがあります。
ネストされる()のペアを対応関係を維持しつつマッチさせたい、というときに使えます。具体的にはCの関数呼び出しやキャストなど。

(?:(?'Open'<)[^<>]*)+(?:(?'Close-Open'>)[^<>]*)+
丸括弧だと正規表現エスケープで読みづらくなるため山括弧の一致にしていますが、もちろん丸括弧でも対応できます。

0 件のコメント: