6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Alteryx】正規表現ノードでの正規表現の書き方

Last updated at Posted at 2022-08-04

はじめに

Alteryxの正規表現がなかなか使いこなせないので備忘も込めてご紹介します。

正規表現とは

内容が異なる文字列を1つの形式で表現する表現方法です。
「ある文字列の中にある5桁の数字」や「アルファベットとスペースが含まれる文字列」等、
一定の規則を持った複数の文字列パターンを、1つの文字列で表現できます。

基本的な正規表現の一覧

Alteryxで意図通り動いたもののみ、下記サイトを参考に記載しています。
https://www-creators.com/tool/regex-checker

上記URLでは、
正規表現で表したい文字列を、作成した正規表現で表現できているかのチェックができるので
うまく正規表現に置き換えられないときにおすすめです。

正規表現 正規表現が指す文字列の内容 正規表現 正規表現が指す文字列の内容
. 改行を除くすべての文字 - -
* 直前で指定した正規表現の0回以上連続 + 直前で指定した正規表現の1回以上連続
(R) 正規表現のグルーピング [abc] カッコ内文字のうちいずれかの1文字
[a-c] カッコ内文字のいずれか [^abc] カッコ内文字以外の1文字
{N} 直前の正規表現パターンのN回の連続 {N,} 直前の正規表現パターンのN回以上の連続
{,M} 直前の正規表現パターンのM回以下の連続 {N,M} 直前の正規表現パターンのN回以上M回未満の連続
^ テキストの開始位置 $ テキストの終了位置
\t タブ \0 Null文字
\s 空白文字すべての文字 (\t, \n, \r, \fと同義) \S 空白文字以外のすべての文字
\d 任意の数字1文字 \D 数字以外の任意の1文字
\w アルファベット, "_"のうち任意の1文字 \W アルファベット, "_"以外の任意の1文字
\l 半角英小文字のうち任意の1文字 \L 半角英小文字以外の任意の1文字
\u 半角英大文字のうち任意の1文字 \U 半角英大文字以外の任意の1文字

Alteryxでの正規表現の使い方

Alteryxで正規表現が使用できるノードは正規表現フィルタフォーミュラ系動的リネーム等です。
※リンク先は公式

正規表現自体はどのノードでも同じものを使用できますが、
正規表現ツールは正規表現を直接入力、
フィルタ・フォーミュラ・動的リネームについては正規表現用の関数を使用する違いがあります。

今回は、下記データを使用した正規表現ノードでの処理をご紹介します。
input.png
3行目・5行目の数値に対して正規表現でいろいろな処理を行ってみるとします。
正規表現で指定したいものは数値なので数値を表す \dと、
桁数が異なる値に両方対応させたいので、1回以上繰り返す表現の+を使用します。
組み合わせて、「98」「7」両方に対応する正規表現は\d+となります。

正規表現ノードでの処理

正規表現ノードでは ①置換②トークン化③解析④一致 の4つの処理を行えます。

①置換
 正規表現に該当する文字列を指定文字列に置換します。
 今回は数値を空白へ置換しています。
 image.png
 正規表現はグループ化でき、グループ化した正規表現は前から連番が振られます。
 $番号で指定することが可能で、
 「一致する正規表現の1つ目の文字列の前に0を追加する」のような処理も可能です。
 image.png
 image.png

②トークン化
 正規表現に一致する文字列を列もしくは行へ分割します。
 今回は数値部分を列へ分割しています。
 image.png

③解析
 正規表現に一致する文字列で新しい列を作成します。新しい列のデータ型は指定できます。
 今回は数値部分をstring型で作成しています。
 image.png

④一致
 正規表現に一致した文字列かどうかをBoolean型で判定します。
 今回は数値が含まれる文字列 (.*(\d+)) か否かを判定しています。
 image.png

おわりに

正規表現ノード以外での書き方はまたまとめます。

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?