AlteryxのRegEx(正規表現)ツールの出力方法のご紹介
こんにちは。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日間の無料トライアルも実施中ですので、お気軽にご相談ください。