ヒットした扱いの正規表現No.00606
白雲斎 さん 07/03/25 21:26
 
こんにちは、白雲斎です。
Windows XP, 秀丸エディタ 6.50β27

ヒットした扱いを用いた正規表現で、マッチする文字列が行末にあると動作が変。

この問題は、
「hidesoft.2:22756| RE 22753 特定バイト目の文字置換について」
http://www.maruo.co.jp/hidesoft/2/x22753_.html?a=4#22756
にて確認された不具合と関係しているかもしれませんが、取り合えず報告。

---- sample data ----
123,456,789
123,456,789
123,456,789
---- sample data ----

●先ずは、正常に検索されることを確認。

gofiletop;
searchdown ", *([0-9]+)(?\\1)", regular;
while( result )
{
    message "hit!";
    finddown;
}

●ヒットした対象を書き換え

setcompatiblemode 0x0200;
gofiletop;
searchdown ", *([0-9]+)(?\\1)", regular;
while( result )
{
    insert "foo";
    finddown;
}


結果、"456" は書き換わりますが、"789" が書き換わりません。

[ ]
RE:00606 ヒットした扱いの正規表現No.00607
山紫水明 さん 07/03/25 22:56
 
 白雲斎さん,

>ヒットした扱いを用いた正規表現で、マッチする文字列が行末にあると動作が変。

行末というより,置換された直後にあるとだめなようですね。
サンプルデータの数字の組をそれぞれ4組にすると,行末も置換されます。
>---- sample data ----
>123,456,789,789
>123,456,789,789
>123,456,789,789
>---- sample data ----

insert "foo";
の後に
left文でカーソルを戻してやってもいいようです。

     では, (^^)/~
                                        山紫水明
                                        SANSHISUIMEI

[ ]
RE:00607 ヒットした扱いの正規表現No.00608
白雲斎 さん 07/03/25 23:51
 
こんにちは“山紫水明”さん、白雲斎です。

>行末というより,置換された直後にあるとだめなようですね。

ご指摘のとおりです! はずかしい。

>insert "foo";
>の後に
>left文でカーソルを戻してやってもいいようです。

と言うより、「finddown2」で解決する問題でした。

「hidesoft.2:22756| RE 22753 特定バイト目の文字置換について」
http://www.maruo.co.jp/hidesoft/2/x22753_.html?a=4#22756

の件を無意識のうちに関連付けて、犯人扱いをしてしまったようです。
お騒がせしました。

[ ]
RE:00608 ヒットした扱いの正規表現No.00610
Iranoan さん 07/03/26 00:45
 
 白雲斎さん今日は、Iranoan です。
> と言うより、「finddown2」で解決する問題でした。
 insertfix 文や置換系の文を使っても解決できますね。

[ ]