正規表現でテキスト編集の効率をアップ

7月 25th, 2003
[`evernote` not found]
Facebook にシェア

以前「編集作業で使うRuby」で、「原稿は通常のテキスト形式で送られてくるわけですが、これを自分で決めたルールで定型化します」と書いたところ、知り合いに「こういう作業は手作業でやってるの?」と聞かれた(コメントはblog上でくれるとうれしいんだが(笑))。こういう作業は「正規表現」を使うと効率的に行えるのだけど、意外に知らない人が多いらしい。たいていのテキストエディタは、正規表現に対応している。
正規表現(Regular Expression)というのは、「ある条件を満たす文字列を表記するための標準的な表記方法」だ。ま、こういう難しげな定義は置いといて。
例えば、一般的なテキストの検索機能では、「行頭にある”■”」という条件で検索できない。ところが、正規表現を使えば検索文字列を「^■」とするだけでいい。こんな感じで、特定の意味を持った記号(メタキャラクタ)を組み合わせることでさまざまな条件を表現できる。
よく使うメタキャラクタは、
・^:行頭を示す
・$:行末を示す
・.:任意の一文字
・+:直前にある文字の、0回以上の繰り返し
・*:直前にある文字の、1回以上の繰り返し
・?:直前にある文字の、0回または1回の繰り返し
・[]:括弧内の文字のいずれか1文字
といったあたりか。ほかにもいろいろあるのだけど、とりあえずこれだけ覚えておくだけでも作業効率がだいぶ違ってくる。
私の場合、見出しや図版参照番号の統一などに正規表現をよく使う。「<図1>」などとなっている図版参照番号を、「【図版:1】」というように変換したければ、検索文字列を「<図([0-9]+)>」、置換文字列を「【図版:\1】」とすればいい。検索文字列の「()」は囲んだ部分の記憶、置換文字列の「\1」でその部分が出力される(メタキャラクタはソフトによって違うので注意)。
正規表現は非常に奥が深く、それだけを解説した本が何冊も出ているくらいだ(『詳説 正規表現 第2版』『正規表現の達人』など)。メールアドレスやURLを探すといったことも簡単に行えるので、覚えておいて損はない。

Leave a Reply

Comments links could be nofollow free.