【Tableau Prep】正規表現を使った文字列抽出 入門編

【Tableau Prep】正規表現を使った文字列抽出 入門編 | Tableau-id Press -タブロイド-
Tableau Prep

今回はTableau Prepで正規表現を使った文字列抽出 入門編やります!

文字列から特定のパターンにマッチする部分だけ抜き出したいということはあると思います。
その「特定のパターン」を表現するために使うのが正規表現なのですが、慣れていない人は敬遠しがちかと思います(記号の羅列で、なんだかよく分かりませんよね・・・)。
今回は入門編ですので、初めての方でも分かるように、書き方を一から詳しく解説したいと思います!

正規表現の書き方

パターン1~3の3つのデータから文字列抽出するための正規表現を書いてみます。

パターン1

ここから日付部分だけを抽出してみたいと思います。

Tableau Prepで正規表現で文字列抽出する関数は
REGEXP_EXTRACT(string, pattern)
です。
patternに指定する正規表現を書いていきます。

まずデータを観察して、切り出したい部分と文字列の規則性を調べます

■規則性
数値4桁 / 数値2桁 / 数値2桁 以降の文字列すべて不要

これを正規表現になおすと次の通りです。

■正規表現
(\d{4}/\d{2}/\d{2}).*

メタ文字 説明
\d 半角数字1文字
{n} n回繰り返す
. 任意の1文字
* 直前のパターンの0回以上繰り返し

/ はそのまま指定しています。
さらに、抽出したい日付部分を()で囲みます。

■結果

日付部分が取れました!

パターン2

ちょっとだけパターン1のデータよりも難しくなりました。
年月部分の桁数が固定ではないです・・・。

■規則性
数値4桁固定 / 数値1桁または2桁 / 数値1桁または2桁 以降の文字列すべて不要

「1桁または2桁」の部分はいろいろな書き方ができますが、今回は次のように書いてみます

■正規表現
(\d{4}/\d+/\d+).*

メタ文字 説明
+ 直前のパターンの1回以上繰り返し

+を指定することで、数値1文字以上ということになるので、1桁にも2桁どちらにも対応ができます。

■結果

日付部分が取れました!

パターン3

これが最後のデータです。
ずっと固定だった/がついに可変になりました・・・。/(スラッシュ)と-(ハイフン)、どちらでも対応できる正規表現を書かないといけないです。

■規則性
数値4桁固定 /または-  数値1桁または2桁 /または-  数値1桁または2桁 以降の文字列すべて不要

■正規表現
(\d{4}[/-]\d+[/-]\d+).*

メタ文字 説明
[] [](角括弧)内に指定した文字のいずれか1文字
例)[abc] = aまたはbまたはc

[/-]と指定すれば/または-を表現するため、/と-どちらの形式の日付にも対応ができます。

■結果

日付が全部取れました~!


【おわりに】

正規表現入門編、いかがでしたでしょうか?
まず抽出したい文字列の規則性を見つけ出し、それをメタ文字に置き換えてパターンを作る、というやり方です。

記事内にも少し書きましたが、書き方の正解は一つではなく、様々な書き方ができます。
書いた正規表現をチェックできるサイトもたくさんありますので、いろいろ試しながら書いてみてください!