Devasで文字列を抽出する

最終更新:
2007-06-01
初出:
2007-05-26

grepツールDevasを使う

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

 但し一般的なgrepツールの振る舞いは、ヒットした文字列の前後を含めた行単位で扱うため、ヒットした文字列だけを抽出しようとすると逆に不純物を除去して精製する一手間が必要でした。また大抵は検索対象が任意のファイルではなくフォルダ単位でしか検索できませんが(grepとは本来そういうものではある)、今回使うDevas(ディーヴァス)はうれしいことに、こちらが欲していた以下の条件をすべて満たしています。

  1. 正規表現に対応している。
  2. ファイルを検索対象に指定できる。
  3. 検索にヒットした文字列のみを保存やコピーをして二次利用できる。

 なおDevasは本来検索だけでなくヒットしたものを一括置換したり、ヒットした中から任意のものだけ選択して置換することもこなす優れたソフトですが、今回は検索部分だけを活用します。

ソフトの名称
Devas
ソフトの作者
Gimite市川
使用したバージョン
3.4
インストール
Vista用のZIPファイル版とそれ以外用の自己解凍インストーラー版がある
アンインストール
フォルダごと削除する
正規表現の源
Boost Regex++
最新版を公開しているサイト
namespace gimite

Devasで漢字二文字以上の文字列を抽出する

検索に使用する文字列
[一-龠][ 一-龠々]+

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

 注意すべきことは、Devasは文字列の内部処理をUnicodeで行っているので、検索文字列に文字コード領域内全部の漢字を指定するときは、シフトJISではなく、Unicodeのコード順、つまり一番最初の漢字は一に、一番最後の漢字は龠(そういうことにしておいて下さい)にしておかないと、取りこぼす漢字が発生することです。

#本来は[一-龠]ではなく[\x4e00-\x9fa0]のようにコード番号で指定するようですが、本稿では解り易さを優先して漢字を直に入力しています。具体的にどんな順番で並んでいるかを簡単に調べるには、かな漢字変換の[IMEパッド]→[文字一覧]画面で、左上にある[Unicode]と[シフトJIS]を切り替えてみて下さい。

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

Devasでカタカナ二文字以上の文字列を抽出する

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

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

Devasで二文字以上の英数文字列を抽出する

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

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

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

操作手順

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

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

  1. Devasを起動する
  2. [対象のファイル/フォルダ]を指定する。
  3. [検索文字列]に検索に使用する文字列を入力する。
  4. [普通の検索]から[正規表現検索]に切り替える。
  5. 必要なら[サブフォルダも検索]にもチェックを入れる。
  6. [検索]を実行する。

 検索結果が出たら、

  1. メニューの[ツール]から[検索結果を保存]を選択。
  2. [ヒットした文字列]にのみチェックを入れる。
  3. [コピー]を選択する。
  4. Devasを終了する。

以後の操作は、並べ替えと重複行の削除ができるエディタで行います。DeuxEditorとotbeditでのやり方を別ページに記しました。


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