3.ページの抽出【応用編】正規表現

正規表現というのは、あまり聞き慣れない言葉かもしれません。しかし、私たちはその恩恵をすでに受けています。

ピックアップ!

正規表現は高度なマッチング技術

たとえば、何かの入力フォームで数字しか入れてはいけないところを漢字を入力しエラーになる、ハイフン抜きの郵便番号を入力するフォームでそれ以外を入れてしまいはじかれる、などです。

これは、正規表現といって、より高度な抽出技術を使い、難しい条件での検出を可能にするものなのです。正規表現はすでに私たちの生活になくてはならないものとなっています。

高度な検出(マッチング)をし抽出する、それが正規表現です。

フィルタで正規表現を使ってみよう

正規表現はそれだけで本が一冊書けるほどの奥深い技術で、かつ伝統的なものです。インターネットが普及する前から、コンピュータの世界では培われてきました。

ですので、本記事では弊社ベーシックで、かつ利用シーンの多い3つをご紹介しましょう。

パイプ | ・・・もしくは(OR表現)

前述のアドバンスフィルタには、さりげなく「AND」と書かれていましたが、あれは「AかつB」という条件指定を示すものです。それに対し、「AもしくはB」という条件指定がORです。

ただ、それはアドバンスフィルタにはないため、正規表現で補います。表現としては**パイプ(|)**で2つのキーワードを区切ります。

<ORの例>
news|topic ・・・・ newsかtopicを含むURLが抽出。
tokyo|osaka|aichi|fukuoka ・・・・ 東京か大阪か愛知か福岡を含むURLが抽出。

このようにパイプは、複数記述することも可能です。

ダラー $ ・・・文末限定

たとえば、topicという文字を抽出したいとき、/topic/2014 も、/2014/topic というページも抽出されてしまいます。どちらもマッチしていることには変わりません。

それを解決するのが**ダラー($)**です。もしくはドルとも読みます。

<$の例>
/topic$ ・・・ /2014/topic が抽出。
14$ ・・・ /2014/topic は抽出されず、/topic/2014 が抽出される。

ハット ^ ・・・文頭限定

ダラーに対し文頭に限定して抽出しますのが**ハット(^)**です。

<^の例>
^/topic ・・・ /topic/2014、/topic/2013、/topicnews/tokyo などが抽出。
^/2014 ・・・ /topic/2014 は抽出されず、/2014/topic が抽出される。

正規表現は奥が深い

いかがだったでしょうか。このように、たった1文字で複雑な抽出条件の指定ができる正規表現ですが、実はシステムによって差異があります。たとえば、Googleアナリティクスでは、正規表現では一般的記号とされる**?が使えません**。

また、正規表現はフィルタだけでなく、セグメントなど他の機能でもつかえる応用範囲の広い技術です。難解な表現ではありますが、修得するだけの価値のあるものといえます。

学習には、以下の書籍や公式ヘルプなどが役立ちます。また、古くからある技術のため、多くの情報がネットで収集可能です。ぜひ検索してみてください。

参考リンク正規表現の概要 - アナリティクス ヘルプ
参考リンクAmazon.co.jp: 正規表現ポケットリファレンス: 宮前 竜也: 本