正規表現置換の限界

Powered by dKingyo アセンブラ | Windows Server | ゲームプログラミング | IT-Text | コンパイラ

私がこの日記に技術情報を投稿する事から離れて久しい気がするが、ちょっと思い出したのでメモ
正規表現置換の限界である。


例えば、


(ab0)と(cd1)と(ef2)
という文字列があったとして、()とその中身の文字列を選択するには

(\w+?)
だと思うのだが、

\w+?
の部分のみを置換する方法が用意されていないのである。


言いかたを替えれば、


(置換)(正規)(表現)
とある文字列を()をそのままにして、()の中身だけを入れ替えるといったようなことだ。
さらに、用意されたカンマ区切りの文字列

限界,英語,進化
があったとして、
これを()をそのままにしつつ、カンマ区切り毎に()の中身として置換できないだろうか?
と考えてしまう事があるのだ。


もうちょっと、BNF風な検索条件と置換条件を表現できれば覚える概念は複雑になるけど、便利になる気はする。

でも、このネタ。私の日記のどこかに書いた気がするのだが・・・。