置換のルール

久しぶりにどう動けば正しいかの話だが、意見は割れそうだ。
あくまで、真魚にとっての正解を考える。

まず、このような文章がある。

abc
abc
abc

そして、正規表現で、¥n|^abc(半角で)を、defに置換させたとする。
これは、改行、または行頭のabcにマッチするわけだから、
改行と行頭のabcが繰り返される上記の文章では、全部がマッチし、

defdefdefdefdef

に置換されるのが正しいのだろうか?いや、真魚ではこれは不正解だ。
まず、最初のabcは、行頭なので、置換はされるだろう。

def
abc
abc

次に、改行もマッチして置換される。

defdefabc
abc

すると、二行目の行頭にあったabcは、一行目に移動して行頭でなくなっている。
そのまま続けると、

defdefabcdefabc

となる。これが真魚での正解だ。

今、真魚に一括で高速な置換をやらせる部分を作るにあたり、
どこまでを省略可能なのかを検討しているわけだが、
Undoとか改行とか色分けとかの処理は省略できても、
やはり上記のような問題で、開けたり詰めたりの作業はマメにやるしかないな。

たぶん関連のある記事:

コメントは終了しています。