タグ: 正規表現
-
作成者投稿
-
2025年11月3日 7:52 pm #32517
yasuji
Participant江村様
いつもお世話になっております。
yasujiです。下記に示したOnigmo.Ruby用の正規表現文字列を使用して、(1)回文の検索を実行した後にASCII文字をキーボードから入力するたびに「正規表現には存在しない部分式への後方参照が含まれています。
^(?<a>|.|(?:(?<b>.)\g<a>\k<b+0>))$」のメッセージボックスが表示されて、テキスト編集作業が阻害される不具合が発生します。
(2)カーソルが1行目1文字目にある時に[次を検索]をクリックしても、選択されるべき文字列へ移動して選択状態にならない不具合が発生する。ただし、選択されるべき文字列の先頭行にカーソルがある場合は、その文字列が選択されます。(3)タブが一つしかない状態で、前述の事象が発生した後、そのタブを閉じてクリアされたタブに、同じようにASCII文字をキーボードから入力たびに、同じ内容のメッセージボックスが表示されて、テキスト編集作業が阻害される不具合が発生します(どちらの状況でも、Alt + F3 キーを押下すると問題が解消します)。検索文字列:
^(?<a>|.|(?:(?<b>.)\g<a>\k<b+0>))$参考文献:
以下の例は回文にマッチする正規表現です。 – 部分式呼び出し(subexpression call) – Ruby 3.4 リファレンスマニュアル 正規表現
※\A–>^,\z–>$へ変更しています。上記不具合の発生の再現手順は下記の通りです。
〔対象〕
v25.0.1 (64bit)
v25.3.2 (64bit)〔再現手順〕
1.EmEditor 64bit ポータブル版を初期状態で起動
zipファイルから展開して、起動する。
初回のエディション選択は、Professionalを選択する。2.下記のテキストを入力する
a aabaaaaaa aaaaabaaaaaaaabaaa rekxker f abcdggdcba※念のため、1行目と2行目、10行目は、改行のみの空行です。
3.検索を開いて、下記の通り設定する
[検索する文字列]
^(?<a>|.|(?:(?<b>.)\g<a>\k<b+0>))$〔チェックボックス〕
[大文字と小文字を区別する(C)]:ON
[一致する文字列を数える(U)]:ON
上記以外のチェックボックスすべて:OFF
〔ラジオボタン〕
[正規表現(X)]:ON[高度]
〔チェックボックス〕
[CRとLFを区別する(T)]:ON
[次を検索/前を検索で重ならない文字列のみ一致する(F)]:ON
上記以外のチェックボックスすべて:OFF
[正規表現エンジン(G)]:Onigmo.Ruby
[正規表現で検索する追加行数(L)]:04.[次を検索]を実行する
5.結果の確認
Ctrl + End キーを押下して、最後の行末へ移動する。
IMEの日本語入力モードを解除して、ASCII文字の直接入力モードに設定する。
任意のASCII文字を入力する。
(1)1文字入力するごとに、下記のメッセージボックスが表示されて、編集作業が困難になる。
エラーのメッセージ:
「正規表現には存在しない部分式への後方参照が含まれています。^(?<a>|.|(?:(?<b>.)\g<a>\k<b+0>))$」6.文章の最先頭へカーソルを移動させる
Ctrl + Home キーを押下して、1行目1文字目にカーソルを移動させる。(空行であることが必要)7.[次を検索]をクリックする
8.結果の確認
(2)空行である場合、何度も[次を検索]をクリックしても選択されるべき文字列へ移動して選択状態にならない。
選択されるべき文字列の行の先頭にカーソルがある場合のみ、その文字列が選択されるが、次の行が空行の場合は次の選択文字列へ移動しない。9.入力済みのタブを閉じる
10.結果の確認
任意のASCII文字を入力する。
(3)1文字入力するごとに、5.と同じメッセージボックスが表示されて、編集作業が困難になる。
Alt + F3 キーを押下すると、メッセージボックスるが表示されなくなる。11.その他のテキストエディターでの確認結果
サクラエディタ32bit Ver. 2.4.2.6048 Appveyor (a3e63915b) では、正常に検索でき、編集に問題は発生しない。2025年11月4日 9:26 am #32522Yutaka Emura
Keymasterいつもお世話になっております。江村です。
v25.3.914 で修正いたしました。
よろしくお願いいたします。
2025年11月4日 9:56 pm #32525 -
作成者投稿
- フォーラム ‘EmEditor 本体の不具合の報告’ には新しいトピックや返信を追加できません。