サクラエディタで文字列を抽出する

最終更新:
2007-12-08
初出:
2007-05-26

サクラエディタのgrep機能を使う

 grep(グレップ)とは、複数のテキストファイルにまたがって検索し、ヒットした文字列を一件一行としてリストしてくれる大変便利なツールです(ここではそういうことにしておいて下さい)。

 サクラエディタに限らずテキストエディタには大抵grep機能が搭載されていますが、サクラエディタの場合こちらが欲している条件の1『正規表現に対応している』のは勿論、条件の3『検索にヒットした文字列のみを二次利用できる』のです。

  1. 正規表現に対応している。
  2. ファイルを検索対象に指定できる。
  3. 検索にヒットした文字列のみを保存やコピーをして二次利用できる。
ソフトの名称
サクラエディタ
ソフトの作者
たけ(nakatani)→オープンソースプロジェクトによる開発
使用したバージョン
1.5.13.1
インストール
ZIPファイル版とインストーラーを使用するパッケージ版がある
アンインストール
インストーラーを使用していなければフォルダごと削除
インストーラを使用していれば『プログラム(アプリケーション)の追加と削除』からアンインストール
正規表現の源
bregexp.dll→1.6.1.0からbregonig.dll(鬼車)に変更
最新版を公開しているサイト
サクラエディタ一次配布サイト

サクラエディタで漢字二文字以上の文字列を抽出する

検索に使用する文字列
[亜-K][亜-K々]+

 正規表現の書き方については、『正規表現』とか『Perl5互換』で検索してその手の指南役サイトをあたって下さい。

 注意すべきことは、サクラエディタはUnicodeに対応しているといっても文字列の内部処理をシフトJISで行っているので、シフトJISにない文字は表示も編集もできません。検索文字列に文字コード領域内全部の漢字(つまり一番最初の漢字=亜〜一番最後の漢字=Kまで)を指定するときは、シフトJISのコード順で指定します。

#具体的にどんな順番で並んでいるかを簡単に調べるには、かな漢字変換の[IMEパッド]→[文字一覧]画面で、左上にある[Unicode]と[シフトJIS]を切り替えてみて下さい。

 上記の検索条件を最低限説明すると、ひとつ目の[亜-K]はシフトJISUnicodeでの『日本の漢字コード領域すべての漢字』一文字を表します(そういうことにしておいてください)。ふたつ目の[ 亜-K]の中に半角スペースが入っているのは、例えば『深井 零』のように姓名の間にスペースが挟まっている場合に備えてのことです。『々』は漢字ではなく記号の範疇になるため追加してあります。末尾の半角『+』は直前の文字の繰り返しを表します。つまり“もしかすると間にスペースが入っているかもしれない二文字以上の漢字(と々)で構成された文字列”を検索対象とします。

サクラエディタでカタカナ二文字以上の文字列を抽出する

検索に使用する文字列
[ァ-ヶ][ァ-ヶー= =・]+

 カタカナを抽出する場合、二文字目以降に『ー(音引き)』『・(ナカグロ)』『==(半角と全角のイコール)』も検索するようにしてありますが、これは“カール・グスタフ”とか“クワイ=ガン・ジン”といった、本来ひとつながりの文字列として扱いたいものが“カール”と“グスタフ”の別々に文字列として扱われてしまうのを防ぐためです。

サクラエディタで二文字以上の英数文字列を抽出する

検索に使用する文字列
[a-zA-Za-zA-Z0-90-9,.!*?/"#$%&'][a-zA-Za-zA-Z0-90-9,.!*?/"#$%&']+

 二文字以上の全角・半角の英数文字と半角の記号を抽出します。

 正直なところ英単語ならスペルチェッカーを使った方が話が早そうなので、カタカナ抽出と組み合わせて『12.7ミリ』とかを検出できるようにすると便利かもしれません(やり方は自分で考えてね)。

操作手順

 実際の操作手順は以下の通りです。

※リンク先にカタカナ検索を行ったときの画面画像を用意しました。但し複数の状態の画面を合成したので、実際の状態とは異なっていることをお断りしておきます。

  1. サクラエディタの[検索]メニューから[Grep]を選択する。
  2. [条件入力]に検索に使用する文字列を入力する。
  3. [正規表現]にチェックを入れる。
  4. [結果出力]の[該当部分]にチェックを入れる。
  5. 検索対象はフォルダ単位でしかできないので、もし任意のファイルだけを検索したい場合、それ用にフォルダを作成してその中にファイルを置く。
  6. [検索]を実行する。

 検索結果は以下のようになります。

	C:\hoge\hoge.txt(1,11)  [SJIS]: 賢作
	C:\hoge\hoge.txt(2,15)  [SJIS]: 弛緩

サクラエディタでsortしてuniqする

 ヒットした文字列の前のファイルパスその他(画像だと黒い選択範囲部分)はこの場合不要な情報なので検索・置換で削除します。

次いで抽出した文字列にソート(sort)をかけて順番に並べ直し、同じ文字列があれば複数行に渡って同じ内容が列挙されるので、今度は二行以上に重複した行を一行だけ残して削除(uniq)します。

検索に使用する文字列
^.*\]:
  1. 文頭と文末にあるインフォメーションは不要なので削除する。
  2. [編集]メニューから[全文を選択]する(もしくはキーボードから Ctrl + A )。
  3. [検索]メニューの[置換]を選択する(もしくはキーボードから Ctrl + R )。
  4. [置換前]に検索に使用する文字列を入力する。
  5. [置換後]は空白のままにしておく。
  6. [正規表現]にチェックを入れて[すべて置換]を実行する。

 ヒットした文字列だけになったら

  1. [編集]メニューから[全文を選択]する(もしくはキーボードから Ctrl + A )。
  2. [編集]メニューの[整形]から[選択行の昇順ソート]を実行する(もしくはキーボードから Alt + A )。
  3. [編集]メニューの[整形]から[連続した重複行の削除]を実行する(もしくはキーボードから Alt + M )。
  4. 必要ならファイルを[名前を付けて保存]する。

サクラエディタで自動でsortしてuniqする

 サクラエディタはキーボードの入力履歴を保存して再利用できるキーボードマクロ機能があるので、上記のgrep終了後一連の操作を記録したマクロファイルを作ってみました。これを登録して実行すればほぼ一瞬でカタがつきます。

  1. マクロファイルをPCに保存する。
  2. 保存したらファイルの拡張子を.txt→.macに変更する。
  3. サクラエディタの[ツール]メニューの[キーマクロの読み込み]を選択する。
  4. grep-sort-uniq.macを選択する。
  5. [キーマクロの実行]を選択する。

 自動でらくらくとはいうものの、結局のところ最後の最後は肉眼でチェックということになりますし、元から間違って憶えていた場合に対しても無力ですが、それでも
『クーリィ』
『クーリー』
『クーリィー』
が上下に並んでいれば、まぁ見つけ出しやすいのではないでしょうか。


Presented by あくつ / e-mail:gfd04163@nifty.com / Copyright(c)1999-2015 acts labo〈アーカイブ〉 (無断転載を禁じます)
inserted by FC2 system