タグ付き正規表現の置換No.00685
ひろ さん 02/01/17 16:03
 
 秀丸担当さん今日は、ひろです。
 鶴亀でも再現したので、β版に限ったことではありませんが、タグ付き正
規表現の置換で解らないことがあります。

---------------------------------------------------------------------

 a(
 あ
---------------------------------------------------------------------
という文章に、
replaceallfast "[「\\((]+\\f\\n\\f[ \\t ]*","\\n\\2\\0",regular;
を実行します。この時
\0 = (
\1 = \n (改行)
\2 =  (全角空白)
になりますよね。ですから結果は
---------------------------------------------------------------------

 a
 (あ
---------------------------------------------------------------------
になると思うのですが、結果は
---------------------------------------------------------------------

 a
( あ
---------------------------------------------------------------------
となります。ファイルの先頭に改行がある場合と、無い場合で結果が異なる
ので、何か勘違いをしているだけかもしれませんが、その場合はご教授頂け
ないでしょうか?

[ ]
RE:00685 タグ付き正規表現の置換No.00691
秀丸担当 さん 02/01/17 19:43
 
>となります。ファイルの先頭に改行がある場合と、無い場合で結果が異なる
>ので、何か勘違いをしているだけかもしれませんが、その場合はご教授頂け
>ないでしょうか?

やってみたところ、再現することができました。
どうも秀丸のバグと思われます。
調査しておきます。

[ ]
RE:00691 タグ付き正規表現の置換No.00798
ひろ さん 02/02/17 00:59
 
 秀丸担当さん今日は、ひろです。
 これ以外にも、タグ付き正規表現で上手くいかない場合があります。
replaceallfast "\\n\\n\\f[^  ]","\\1",regular;
を実行すると、改行が 3 つ以上続く場合、結果がおかしい部分がでてきます。
なお置換後の文字は不定です。

 こちらの環境は、Windows98+秀丸 Ver.3.15 です。

[ ]
RE:00798 タグ付き正規表現の置換No.00799
秀丸担当 さん 02/02/18 15:49
 
> これ以外にも、タグ付き正規表現で上手くいかない場合があります。
>replaceallfast "\\n\\n\\f[^  ]","\\1",regular;
>を実行すると、改行が 3 つ以上続く場合、結果がおかしい部分がでてきます。
>なお置換後の文字は不定です。

報告ありがとうございます。
調査するようにしておきます。

[ ]