AlteryxのRegEx(正規表現)ツールの出力方法のご紹介

2019.10.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。Alteryx勉強中のスズです。

今回はAlteryx DesignerのParse(パース)ツールにあるRegEx(正規表現)ツールについてご紹介します。なお、本エントリの執筆にはAlteryx Designer 2019.3.2.15763を使用しています。

RegEx(正規表現)ツールとは

RegExツールとは、正規表現を使用することで文字列の置換やパースなどを行うことができるツールです。正規表現とは、文字列そのものではなくパターンを表記することで文字列を表現する方法です。

例えば、以下のようにアルファベットと数字からなるデータがあるとします。

各レコードには「123」「234」といった異なる数字がありますが、「(\d+)」などのように数字を表すパターンを表記できるのが正規表現です。また、正規表現を用いてパースなどを行えるのがRegExツールです。
RegExツールで「(\d+)」を指定してパースを行うと、以下の「RegExOut1」のように数字部分だけが出力されます。

初めて正規表現を使う場合は表記の仕方に戸惑うかと思いますが、RegExツールでは+ボタンから呼び出すことができます。ここから組み合わせていくことが可能です。

出力方法

サンプルご紹介

RegExツールにはサンプルが用意されています。サンプルはツールを選択してOpen Example(例を開く)から参照することができます。

サンプルには以下のデータが用意されています。このデータを使って、各出力方法でどのようなデータが出力されるかご紹介します。

Match (一致)

Matchは、指定した列の各レコードに正規表現で指定した文字列が含まれているかどうかを「True」または「False」で出力します。一致した場合は「True」、一致しない場合は「False」となります。

サンプルでは以下の設定を行っています。Regular expressionで指定した文字列が一致するかどうかを出力します。

  • Column to parse(解析する列):Address
  • Regular expression(正規表現):.*-\d{4}
    • Case insensitive(大文字小文字を区別しない):有効

実行すると新しい列が作成され、「True」または「False」が出力されています。

Parse (解析)

Parseは、正規表現でグループを定義し、指定した列の各レコードからデータをパースして新しい列を作成します。

サンプルでは以下の設定を行っています。Regular expressionで「()」を使用して文字列のグループを指定し、新しい列に出力します。

  • Column to parse(解析する列):Name
  • Regular expression(正規表現):([a-z]+)\s([a-z]+)
    • Case insensitive(大文字小文字を区別しない):有効
  • Output columns(出力列):列名、データ型、サイズを指定

このサンプルではRegular expressionで「()」を2つ指定していますので、2つの列を作成する設定になっています。実行すると、「Name」列から「First Name」列と「Last Name」列を作成します。

Replace (置換)

Replaceでは、各レコードに正規表現で指定した文字列が含まれている場合、異なる文字列に変換します。

サンプルでは以下の設定を行っています。Regular expressionで指定した文字列をReplacement textで指定した文字列に置換します。

  • Column to parse(解析する列):Address
  • Regular expression(正規表現):(.),(.),(.*)\s(\d{5})(-\d{4})?
    • Case insensitive(大文字小文字を区別しない):有効
  • Replacement text(置換テキスト):$4: $2, $3
    • Copy unmatched to text to output(一致しないテキストを出力にコピーする):有効

Replacement textでは、Boost-extended Format String Syntaxで「$」で元のデータのn番目の部分式に一致したものを出力するように設定しています。実行すると、「Address」列のデータが置換後の文字列になっています。

Tokenize (トークン化)

Tokenizeでは、正規表現で文字列を指定して出力します。出力先として異なる列を選択できるほか、同じ列の異なる行に出力することも可能です。Text To Columns(列分割)ツールのように使用することができます。

サンプルでは以下の設定を行っています。Regular expressionで正規表現を指定し、3つの列に出力します。

  • Column to parse(解析する列):Address
  • Regular expression(正規表現):[^,]+
    • Case insensitive(大文字小文字を区別しない):有効
  • Split to columns(列分割)
    • Number of columns(列数):3
    • Extra columns(余分な列):Drop extra with warning(警告付きで超過分を削除)
    • Output root name(出力ルート名):Address

実行すると、Number of columnsで指定した数だけ、Output root nameで指定した名前の列が作成されます。

最後に

サンプルを使ってRegExツールについてご紹介しました。正規表現は慣れないうちは難しいイメージがありますが、データ整形を行う上で便利なツールですので使ってみていただければ幸いです。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400