用語解説 - 正規表現
新学期、新生活など、さまざまな変化がある3月です。今年はとくにですが、師走よりも気ぜわしく感じるのは、そろそろ東日本大震災から10年の節目で、さまざまなことを考えてしまうからでしょうか。
さて、今日の話題「正規表現」は、とくにウェブサイト用語というわけでもないのですが、たまたまこのブログで用意しているカテゴリ名がそうなっておりますので、ここで紹介します。
たくさんの文字列、文章、あるいは文字やデータの集合体に対して、規則性に基づいた表現を使って探しものをしたり、内容を置き換えるなどの編集ができます。そのときに使う表現を「正規表現」といいます。いや、もしかしたらすごくきちんとした定義があるのかもしれませんけれども、わたしはそう理解しています。
たとえば数ページ程度の文章やデータであれば、ひとつひとつ検索して手で直すことも手間ではありませんが、数百、数千のページにわたって変更をしなければならないとき、これがとても役立ちます。
実は本日ですが、大きなテキストファイルからルビ記号に囲まれた文字をすべて探して消そうとしました。例を書けばこういうものを
《たとえばこの中に含まれている内容がルビです》
…消そうと思ったのですが、うっかり正規表現の記憶違いをしていて、関係ない文字列までが消えてしまう。あれれ、おかしいぞと検索をしましたところ、まったく同じ内容で質問をしている人の掲示板を見つけてしまいました → 《》で囲まれた文字をすべて削除したい
ネットは便利ですね。わたしが最初に書いたものがきちんと動かなかったのは「 .*? とすべきだったところを最後に ? を付け忘れたため」だったとわかりました。
また、こちらの murashun.jp さんのように、正規表現が見やすく整理されているものもありますので、ブックマークしておいて、たまに見るのも勉強になります→ 基本的な正規表現一覧
去年ですが、閲覧用に残しておいた自分の古いブログ内容を編集し、静的なテキスト部分だけを残すという、手間のかかる作業をしました。もう使っていない古いブログでしたが、CGIなど動的な部分が残っていれば誰かに狙われないともかぎりませんので、念には念をと思ったのです。合計で数百ページから該当する箇所を削除してまわる作業でしたが、正規表現と合わせて、テキストエディタで楽に実現できました。
難しそうに思えても、何か思いついたとき「正規表現を検索して調べてみようか」と、考えてみるだけでも、けっこう新しい世界が開けるかもしれません。