検索時と置換時でマッチする文字列が違う No.25618
colder さん 08/11/10 13:20
 
いつもお世話になります。仕様の確認です。
XP上で秀丸エディタ ver7.10を使用しています。

改行文字\nと行末$を含む検索文字列を指定したとき
マッチする文字列が違うのは意図された動作でしょうか?
具体例でいいますと、検索文字列に『^[0-9]+\n$』を指定したとき、
検索時には、数字だけからなる行にマッチするのに対し、
置換時には、数字だけからなる行+空行にマッチします。

[ ]
RE:25618 検索時と置換時でマッチする文字No.25619
秀丸担当 さん 08/11/10 15:01
 

>改行文字\nと行末$を含む検索文字列を指定したとき
>マッチする文字列が違うのは意図された動作でしょうか?
>具体例でいいますと、検索文字列に『^[0-9]+\n$』を指定したとき、
>検索時には、数字だけからなる行にマッチするのに対し、
>置換時には、数字だけからなる行+空行にマッチします。

検索文字列の強調は、改行文字までは強調されないので、見た目上はそのように
見えるかもしれません。
検索でも、改行までを含めてマッチしていると思います。
例えば、[その他]→[動作環境]→[検索]→[検索での表示]が「範囲選択」の場合、
検索して下候補をしながら貼り付けると、置換と同じ結果になるのではないかと
思います。

[ ]
RE:25619 検索時と置換時でマッチする文字No.25620
colder さん 08/11/10 15:30
 
>検索して下候補をしながら貼り付けると、置換と同じ結果になるのではないかと
>思います。

確かに、下候補をすると、同じ場所にマッチしていますね。
しかし、検索時にマッチしていない部分も強調表示されています。
例えば、
123
456

789
でマッチするのは、"456+改行"の部分だけですが
"123"や"789"の部分も強調表示されています。




[ ]
RE:25620 検索時と置換時でマッチする文字No.25621
秀丸担当 さん 08/11/10 16:42
 

>確かに、下候補をすると、同じ場所にマッチしていますね。
>しかし、検索時にマッチしていない部分も強調表示されています。

確かに検索文字列の強調は、マッチしていない部分も強調されてしまっているよ
うです。
ご指摘ありがとうございます。

検索文字列の強調は複数行にまたがるものは強調できない仕様なのですが、
V6.00のときに、一行の行末の改行だけは判断してほしいということで、行末の
改行だけは判定に含めるようにしました。
しかし次の行が空行でも、空行でなくても判定に使われる文字列は同じなので、
これを直すのは難しそうです。
正確な強調表示が必要ということになってくると、V5.xxのときのように行末の
改行は判定しないように戻すのが簡単な解決方法ですが、そうすると、それでは
困るという意見もあるかもしれないです。

[ ]