>タイトル: Re2:^. 置換(不具合?)
>発言者: kenji
>ちょっと気になったんで、手元にあった他のツールでも同じ操作(「^.」→「」)をやってみました。
>
>全部消える……サクラ, 秀丸(HMJRE&JRE32), Dana, Wz
>先頭1文字だけ消える……sed, ActivePerl, ViVi, WSH5(RegExp.Replace()), BASP21(Replace())
>正しい動作は先頭1文字削除のほうですよね?
かろとです。
どっちが正しいというのは難しいですねぇ。
一度ファイルを指定したら、ファイルの最後までユーザに操作させない
ストリームエディタ系なら、
ある行に対する行頭置換処理は、1回だけでいいかな?と思いますが、
(sed, perl, WSH, などは、同じ行で何度も同じ置換をしたければ、その行に同じ操作を行うように書けばいいはず)
スクリーンエディタのように、置換するごとにユーザに操作を戻す形態だと、
その行に対して何度も処理するのも、ありかなと思ったりします。
もし前者のように、先頭の一文字削除しかしない、スクリーンエディタがあって、
「abcd」
というテキストがあり、「^.」→「」の置換をすると、
1回目は
「bcd」になる。
で、ユーザに操作が戻って、
ここで、ユーザがもう一度「^.」→「」の置換をすると、
「cd」となって欲しいと思う人もいるはずですが、
先頭の一文字削除した後なので、「bcd」のまま残すのです。
操作している人の意志がどちらなのか、難しい問題のように思います。
どうでしょう?