1 件の投稿を表示中 (合計 1 個)
  • 作成者
    投稿
  • #31889
    yasuji
    参加者

    江村様

    いつもお世話になっております。
    yasujiです。

    正規っ表現検索で、検索文字列に\A.+\Zを指定して検索すると一致するはずがないにもかかわらず、すべての行が強調表示されかつ、最終行が文字列選択状態になる不具合の連絡です。

    上記不具合の発生の再現手順は下記の通りです。

    〔対象〕
    v24.3.2 (64bit)

    〔使用環境〕
    OS: Windows 10 Pro 64bit, ver 22H2

    〔再現手順〕
    1.EmEditor 64bit ポータブル版を初期状態で起動
     zipファイルから展開して、起動する。
     初回のエディション選択は、Professionalを選択する。

    2.開いている文書タブに適当なテキストの入力
     例えば、下記のようなテキストを文書タブに入力して未保存状態にする。

    
    "(
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    )"
    CCCCCCCCCCCC
    DDDDDDDDDDD
    (
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    )
    "(
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    )"
    -------
    

    3.検索を開いて、下記の通り設定する
    [検索する文字列]
    \A.+\Z

    〔チェックボックス〕
    [一致する文字列を数える(U)]:ON
    上記以外のチェックボックスすべて:OFF
    〔ラジオボタン〕
    [正規表現(X)]:ON

    [高度]
     〔チェックボックス〕
     [CRとLFを区別する(T)]:ON
     [次を検索/前を検索で重ならない文字列のみ一致する(F)]:ON
     上記以外のチェックボックスすべて:OFF
     [正規表現エンジン(G)]:既定(Boost.Regex)
     [正規表現で検索する追加行数(L)]:0

    4.[次を検索]を実行する

    5.結果の確認
    全ての行が背景色緑色で強調表示になり、1行目が選択される。
    ステータスバーに「15個の一致(15行)が見つかりました。」と表示される。
    Multilineモードの場合は、何も選択されないのが正しい動作になる。
    全ての行の強調表示、最終行の選択状態、ステータスバーの表示はすべて誤動作のバグです。

    なお、[すべて選択(A)]を実行すると、すべての行が選択されるのもバグです。

    6.検索を開いて、下記の通り設定する
    [検索する文字列]
    \A.+\Z

    〔チェックボックス〕
    [一致する文字列を数える(U)]:ON
    上記以外のチェックボックスすべて:OFF
    〔ラジオボタン〕
    [正規表現(X)]:ON

    [高度]
     〔チェックボックス〕
     [CRとLFを区別する(T)]:ON
     [次を検索/前を検索で重ならない文字列のみ一致する(F)]:ON
     上記以外のチェックボックスすべて:OFF
     [正規表現エンジン(G)]:既定(Boost.Regex)
     [正規表現で検索する追加行数(L)]:2000

    7.[次を検索]を実行する

    8.結果の確認
    全ての行が背景色緑色で強調表示になり、最終行が選択される。
    ステータスバーに「15個の一致(15行)が見つかりました。」と表示される。
    Multilineモードの場合は、何も選択されないのが正しい動作になる。
    全ての行の強調表示、最終行の選択状態、ステータスバーの表示はすべて誤動作のバグです。

    なお、[すべて選択(A)]を実行すると、すべての行が選択されるのもバグです。

    9.検証
    9.1 Notepad++を開いて2.を入力する

    9.2 検索を開いて、下記の通り設定する
    3.の設定手順のうち、下記の項目のみ変更して、設定する。
    [検索する文字列]
    \A.+\Z

    〔チェックボックス〕
    [先頭/末尾から再検索(P)]:ON
    上記以外のチェックボックスすべて:OFF
    〔検索モード〕
    [正規表現(G)]:ON
    [.は改行と一致]:OFF

    9.2 [次を検索]を実行する

    9.3 結果の確認
    見つかりませんのエラーが表示される。

    9.4.EmEditorの検索を開いて、下記の通り設定する
    [検索する文字列](Boost.Regexの場合)
    (?s)\A.+\Z
    [検索する文字列](Onigmoの場合)
    (?m)\A.+\Z
    ※Onigmoのmが、Singlelineモードになる。

    〔チェックボックス〕
    [一致する文字列を数える(U)]:ON
    上記以外のチェックボックスすべて:OFF
    〔ラジオボタン〕
    [正規表現(X)]:ON

    [高度]
     〔チェックボックス〕
     [CRとLFを区別する(T)]:ON
     [次を検索/前を検索で重ならない文字列のみ一致する(F)]:ON
     上記以外のチェックボックスすべて:OFF
     [正規表現エンジン(G)]:既定(Boost.Regex)
     [正規表現で検索する追加行数(L)]:2000

    9.5.[次を検索]を実行する

    9.6.結果の確認
    全ての行が背景色緑色で強調表示になり、すべての行が選択される。
    ステータスバーに「15個の一致(15行)が見つかりました。」と表示される。
    Singlelineモードの場合は、1行扱いになりすべての行が選択されるのが正しい動作になる。
    ステータスバーの表示は本来1個の一致と表示するべきでカウント表示バグです。

1 件の投稿を表示中 (合計 1 個)
  • このトピックに返信するにはログインしてください。