ブログ

正規表現について

初めまして。インターン大学一年生の松本です。まだまだペーペーで役立たずの僕ですが、これから全力で頑張って会社に少しでも貢献したいと思っています!
 
早速ですが、私が最近学んだ正規表現について解説したいと思います。正規表現はテキストエディタ、ワードプロセッサなどのアプリケーションプログラムで、さまざまなプログラミング言語でライブラリによって使うことができます。英語でregular expression(略してregex)と表現され“いくつかの文字列を一つの形式で表すための表現方法と定義されています。自分なりにもう少し砕いて定義すると複数の文字列データから必要なデータを抽出したいとき、一つ一つデータを抽出していては時間がかかるし抽出漏れが起こるかもしれない。そのようなことを防ぐため、文字、数字、特殊文字(メタ文字)を利用して該当する文字データをすべて抽出するです。これでも全く実際に正規表現に触れたことのない方ならさっぱりだと思うので実際に例を出しながら説明していきたいと思います(笑)
 
ある日、ある通信事業者に勤めているAさんが上司から「明日までにこのデータから090-で始まる電話番号だけまとめてリストにまとめて」言われました。そこに載っているのは大量の顧客の電話番号データ。しかもそこに記載されているのは090-xxxx-xxxx,080-xxxx-xxxx,070-xxxx-xxxxといった風に不規則に並んだもの。絶対に明日までに終わらすことができない、、、
自力でやれば3日かかってしまいそうな仕事ですが、Aさんはなんと1分でその仕事を片付けてしまいました。どんなからくりを使ったか、、、
まさにそこで正規表現の知識を使ったのです。先ほども言った通り、正規表現とは“いくつかの文字列を一つの形式で表すための表現方法です。(定義は重要なのでもう一度書きました(笑))。この定義に当てはめると、いくつかの文字列(この例の場合だと大量の電話番号)を一つの形式(この場合だと090-\d{4}-\d{4})で表現する、といった感じになります。
\d{n}はメタ文字で、それぞれ”0~9までの数字一文字直前の文字をn回繰り返すを意味します。今回は数字列の抽出をしましたが、文字、文字と数字が混合したものなどと複雑なものも瞬時に抽出が可能です。
 
そのほか解説を加えながら列挙したいと思います。
. … .(ピリオド)は任意の一文字の意味→田辺、田中、田上など。任意の一文字なので田1、田Aなども該当。
b.+k … +は一回以上の繰り返しの意味→任意の文字の一回以上の繰り返しなので、bookbackblackjackなど。先ほど同様b1kbe3kba31lkなども該当。
[13579] … []内の文字一文字の意味→一桁の奇数。
よく使うメタ文字をまとめたサイトがあったのでリンク先を貼っておきます。
http://gimite.net/help/devas-ja/all_regex.html
 
例に挙げたのは単純な文字列ですが複雑になればなるほど、正規表現のありがたみが実感できると思います^^
 
正規表現は覚えておくと様々な場面で、仕事の効率化を行えると思います。しかし、中途半端な知識ではかえって手間がかかったり、抽出漏れが起きるリスクがあります。なので覚えるからには完璧に使いこなせるようにしましょう。(僕も人に言えるような技術は全くありませんが^^;)

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. ブログ

    サーバーがアクセス情報を取得する仕組み

    前回のブログ、Adobe Analytics 原理①では、どのようにし…

  2. ブログ

    大学3年生、マーケティングオートメーションを学ぶ

    こんにちは!エクスチュアでインターンシップに参加している柳沼です。今…

  3. ブログ

    IPアドレスとは

    こんにちは。インターン生の藤本です!今日はIPアドレスについて説明し…

  4. ブログ

    ③DMPについてーKrux

    こんにちは!インターン生の藤本です。今日は海外DMP2つ目、Krux…

  5. ブログ

    カスタマージャーニー作成

    こんにちは!インターンの藤本です。今日は私がここ数日間取り組んでい…

  6. ブログ

    ダッシュボードに使うべき10のグラフ③

    こんにちは!インターン生の山本です。前回はブレットグラフをご紹介させ…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


最近の記事

  1. GASを利用してWebスクレイピングをやってみよう
  2. Adobe Analyticsを知る。
  3. Cookieを数える -アメリカ、イギリス、オーストラリアの…
  4. Google App Scriptを特定のタイミングで自動で…
  5. Google App ScriptとGoogleスプレッドシ…
  1. Google BigQuery

    GCP: 今月のGCP課金額をslackに自動的に書き込む
  2. Tableau

    【TC19ブログ】Tableau新データモデリング(リレーションシップ)解説
  3. Amazon Web Services

    System Managerを利用したVPC内Redshiftへの接続
  4. Tableau

    あなたのTableau(タブロー)が重い理由【パフォーマンスの記録】
  5. Tableau

    Tableau Tips〜データソースの置換〜
PAGE TOP