置換のルール
久しぶりにどう動けば正しいかの話だが、意見は割れそうだ。
あくまで、真魚にとっての正解を考える。
まず、このような文章がある。
abc
abc
abc
そして、正規表現で、¥n|^abc(半角で)を、defに置換させたとする。
これは、改行、または行頭のabcにマッチするわけだから、
改行と行頭のabcが繰り返される上記の文章では、全部がマッチし、
defdefdefdefdef
に置換されるのが正しいのだろうか?いや、真魚ではこれは不正解だ。
まず、最初のabcは、行頭なので、置換はされるだろう。
def
abc
abc
次に、改行もマッチして置換される。
defdefabc
abc
すると、二行目の行頭にあったabcは、一行目に移動して行頭でなくなっている。
そのまま続けると、
defdefabcdefabc
となる。これが真魚での正解だ。
今、真魚に一括で高速な置換をやらせる部分を作るにあたり、
どこまでを省略可能なのかを検討しているわけだが、
Undoとか改行とか色分けとかの処理は省略できても、
やはり上記のような問題で、開けたり詰めたりの作業はマメにやるしかないな。