改行前のスペースとタブの検索No.07034
KAZYA71 さん 12/06/11 14:28
 
秀丸エディタの正規表現ので検索(マクロではなくメニュー)で、
[  \t]+\n ([全角スペース半角スペース\t]+\n) とすると、
行末(改行を含めた直前)に全角スペースや半角スペースやタブ記号が入り交じった状
態でもヒットします。

同じことをマクロで実行しようとして以下のように試しました。
searchdown "[  \t]+\\n",regular;
(searchdown "[全角スペース半角スペース\t]+\\n",regular;)
searchdown "[  \\t]+\\n",regular;
(searchdown "[全角スペース半角スペース\\t]+\\n",regular;)

どちらでもヒットしません。
ということは、私の書き方が悪いと思いネットやこちらでキャラクタクラスについて
検索しましたが、欲しい情報を得られませんでした。

行末(改行を含めた直前)に全角スペースや半角スペースやタブ記号が入り交じった状
態をマクロでヒットさせる書き方をご教授ください。

[ ]
RE:07034 改行前のスペースとタブの検索No.07040
山紫水明 さん 12/06/11 21:29
 
 KAZYA71さん,

>同じことをマクロで実行しようとして以下のように試しました。
>searchdown "[  \t]+\\n",regular;
>(searchdown "[全角スペース半角スペース\t]+\\n",regular;)
>searchdown "[  \\t]+\\n",regular;
>(searchdown "[全角スペース半角スペース\\t]+\\n",regular;)
>どちらでもヒットしません。

 そのままコピー&ペーストして実行してみましたが,両方とも問題なく動いて
います。キャラクタクラスの中では \t はそのまま書けますが,\\t と書いても
動きます。
 ヒットしないのは不思議ですね。マクロを実行したときのカーソルが該当箇所
の下の方にあったとか・・・。そんなことはないですよね。

                          山紫水明
                          SANSHISUIMEI

[ ]
RE:07034 改行前のスペースとタブの検索No.07041
秀まるお2 さん 12/06/12 10:05
 
 「マクロ・キー操作の記録開始/終了」を一回実行し、その状態から正規表現
の検索を実行し、その後もう一度「キー操作の記録開始/終了」を実行します。

 それから「マクロ・キー操作の保存...」で保存すると、それで作成された
マクロは、たしかにうまくヒットするマクロになるはずだと思います。

 それと、ご自身で作成されたマクロの中身を見比べていただくって作戦がお勧
めです。

[ ]
RE:07034 改行前のスペースとタブの検索No.07042
KAZYA71 さん 12/06/12 12:43
 
山紫水明 さま
秀まるお2 さま

昨日は replaceallfast を実行して、思った通りの結果にならなかったため、
seachdown に変更して試しました。
gofiletop;
golinetop;
escape;
REPLACE:
searchdown "[  \t]+\\n",regular;
if ( !result ) {message "no "; endmacro;}
golineend2;
goto REPLACE;
どういう訳か、今日は思った通りにヒットしました。

昨日は検索を行なって、ヒットした部分の範囲選択ではなく該当するものが
強調表示された状態で実行したため、それが原因ではないかと思いました。
しかし今日、同様の状態で試したところ問題ありませんでした。

ただし昨日書いたものをそのまま残していたわけではありません。
どうやら私の記述ミスだったようです。

それから、マクロ・キー操作の記録という方法と意味を知りませんでした。
早速ためにし実行してみました。
これは知っておくと今後必ず役に立ちます。

どうもありがとうございます。

[ ]