【生産性UP】『検索文字が無い行』を一瞬で消す方法 ~ サクラエディタ

2023年8月9日水曜日

サクラエディタ 正規表現


■はじめに

当記事は、メモ書きとして残す目的で書いた記事です。

今回ご紹介するテクニックは、私が『検索文字がない行を全部消したい』と思った時に使うものです。

サクラエディタならこのようなことがササッとできてしまうのでとても便利です。

◆この記事では以下のことがわかります。

  1. 検索文字が無い行 』を検索する方法
  2. 検索文字が無い行 』を削除する方法
  3. マクロで置換を使う方法

■①「検索文字が無い行」の検索方法

◆検索文字が1つの場合

「検索文字が無い行」のみを検索する方法をご紹介します。
検索[Ctrl+F]置換[Ctrl+R]で検索欄を開き、以下の文字を入力してみましょう。
検索文字の部分は、実際に検索する文字に変更してください。

^(?!.*検索文字).*

入力したら検索を実行して動作を確認してみましょう。
検索文字が無い行』のみ選択されます。
動かない場合は『正規表現(E)』のチェックが入ってことを確認してください。

検索文字1つ場合

◆検索文字が2つ以上の場合

検索文字が2つ、3つ・・・と複数ある場合は次のように入力します。

^(?!.*(検索A|検索B|検索C)).*

上記のように『|(パイプ)』で区切れば、複数検索することが可能です。

検索文字3つ場合

■「検索文字が無い行」の削除手順

◆置換と正規表現で削除する

検索文字が無い行を一瞬で消すには、『置換』と『正規表現』を使います。
置換ダイアログ(Ctrl+R)を開き、次にように入力しましょう。
<検索文字1つの場合>
置換前(N): ^(?!.*検索文字).*
置換後(P): 空欄
正規表現: チェックON
置換対象: 行削除(3) チェックON

<検索文字が複数の場合>
置換前(N): ^(?!.*(検索文字A|検索文字B|検索文字C)).*
置換後(P): 空欄
正規表現: チェックON
置換対象: 行削除(3) チェックON

「すべて置換」を押して実行すれば、検索文字がない行を削除されます。

画像では『検索文字』がない行のみ選択してます


■正規表現の解説

今回使用した正規表現 ^(?!.*検索文字).* の説明です。
記号 説明
^ 行頭
?! 否定先読み
.* 任意の文字0文字以上

行の最初から、任意の文字0個以上と検索文字が無いという書き方です。

つまり、『行の中に検索文字が無い行を選択することが出来ます。


■置換マクロを使用する

今回の作業をよく利用する場合、マクロにして登録しておくと非常に便利です。

マクロコードは以下のとおりです。(※拡張子はvbs)

ReplaceAll "^(?!.*検索文字).*", "", 788

使用するときは、「名前を使用してマクロを実行」もしくは、共通設定からマクロ登録して使用していただければOKです。

■さいごに

正規表現を活用することができれば、テキスト処理がとても楽になります。

私の場合、NW装置の設定を確認するため、

『サクラエディタにログの内容をコピー → 検索文字の無い行削除 → 必要な確認』

というようなことに活用しています。

もし当記事が役に立つことがあれば幸いです。

QooQ