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

    江村様

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

    正規表現置換で、検索文字列を[“()]+(?:\r\n|[\r\n])|[“()]+に設定し、置換文字列を空にして、特定行のみを行削除する置換を実行すると1行目のみ行削除され、以降は空行が残る不具合の連絡です。

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

    〔対象〕
    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.置換を開いて、下記の通り設定する
    [検索する文字列]
    [“()]+(?:\r\n|[\r\n])|[“()]+

    [置換後の文字列](空に設定する)

    〔チェックボックス〕
    チェックボックスすべて:OFF
    〔ラジオボタン〕
    [正規表現(X)]:ON

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

    4.すべて置換を実行する

    5.結果の確認
    1行目の “( は行ごと削除されるが、それ以降は空行になる。
    本来は、条件に一致する行がすべて削除されなければならい。
    [正規表現エンジン(G)]をOnigmoに変更しても同じ結果になる。

    
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    
    CCCCCCCCCCCC
    DDDDDDDDDDD
    
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    
    -------
    

    6.検証
    6.1 置換を開いて、下記の通り設定する
    3.の設定手順のうち、下記の項目のみ変更して、設定する。
    [検索する文字列]
    [“()]+(?:\r\n|[\r\n])

    6.2 [すべて置換]を実行する

    6.3 確認
    期待通りの下記の結果になる。

    本来は、5.の置換結果が下記と同一の結果にならなければならない。
    最左から一致するものを優先的にマッチさせるため。

    
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    CCCCCCCCCCCC
    DDDDDDDDDDD
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    -------
    

    7.検証2
    7.1 Notepad++を開いて2.を入力する

    7.2 置換を開いて、下記の通り設定する
    3.の設定手順のうち、下記の項目のみ変更して、設定する。
    [検索する文字列]
    [“()]+(?:\r\n|[\r\n])|[“()]+

    [置換後の文字列](空に設定する)

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

    7.2 [すべて置換]を実行する

    7.3 結果の確認
    期待通りの下記の結果になる。

    
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    CCCCCCCCCCCC
    DDDDDDDDDDD
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    -------
    
    #31894
    yasuji
    参加者

    すみません。上記の正規表現の部分にcodeタグを使用しなかったため、ダブルクォーテーションの文字が意図していない文字に変換されてしまいました。そのため、codeタグを入れたものを再度掲載します。
    ———————————
    江村様

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

    正規表現置換で、検索文字列を["()]+(?:\r\n|[\r\n])|["()]+に設定し、置換文字列を空にして、特定行のみを行削除する置換を実行すると1行目のみ行削除され、以降は空行が残る不具合の連絡です。

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

    〔対象〕
    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.置換を開いて、下記の通り設定する
    [検索する文字列]
    ["()]+(?:\r\n|[\r\n])|["()]+

    [置換後の文字列](空に設定する)

    〔チェックボックス〕
    チェックボックスすべて:OFF
    〔ラジオボタン〕
    [正規表現(X)]:ON

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

    4.すべて置換を実行する

    5.結果の確認
    1行目の “( は行ごと削除されるが、それ以降は空行になる。
    本来は、条件に一致する行がすべて削除されなければならい。
    [正規表現エンジン(G)]をOnigmoに変更しても同じ結果になる。

    
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    
    CCCCCCCCCCCC
    DDDDDDDDDDD
    
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    
    -------
    

    6.検証
    6.1 置換を開いて、下記の通り設定する
    3.の設定手順のうち、下記の項目のみ変更して、設定する。
    [検索する文字列]
    ["()]+(?:\r\n|[\r\n])

    6.2 [すべて置換]を実行する

    6.3 確認
    期待通りの下記の結果になる。

    本来は、5.の置換結果が下記と同一の結果にならなければならない。
    最左から一致するものを優先的にマッチさせるため。

    
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    CCCCCCCCCCCC
    DDDDDDDDDDD
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    AAAAAAAAAAAAAAA
    BBBBBBBBBBBBBB
    -------
    

    7.検証2
    7.1 Notepad++を開いて2.を入力する

    7.2 置換を開いて、下記の通り設定する
    3.の設定手順のうち、下記の項目のみ変更して、設定する。
    [検索する文字列]
    ["()]+(?:\r\n|[\r\n])|["()]+

    [置換後の文字列](空に設定する)

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

    7.2 [すべて置換]を実行する

    7.3 結果の確認
    期待通りの下記の結果になる。

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