正規表現ツール
ツールごとに学習
正規表現ツールには「ツールごとに学習」が用意されています。 サンプルワークフロー を参照して、このサンプルを含むさまざまなサンプルをAlteryx Designerで直接利用する方法をご確認ください。
正規表現は、正規表現構文を使用してデータの解析、一致、置換を行います。
正規表現のサポート
正規表現は Designer でサポートされていますが、式と式そのものがデータに与える影響の責任についてはユーザー自身が担います。
正規表現の記述方法に関するその他のリソースについては、 https://regex101.com/ (Alteryxと無関係のサイト)、または(Perl互換の)正規表現を対話的に試すことができるWindows用グラフィカルアプリの RegEx Coach (Alteryxと無関係)を参照してください。
Boost RegExの詳細については、以下のリソースを参照してください。
ツールの設定
解析する列 を選択します。
変換する形式 で...
正規表現 を入力します。式の作成中に必要になる可能性のある一般的な正規表現にアクセスするには、[+] ボタンを使用します。詳細については、 Perl 正規表現構文 Web サイトを参照してください。
大文字と小文字を区別しない : 既定で選択されています。検索で大文字と小文字は区別されません。
出力 で、解析時に使用する 出力方法 を選択します。次に、関連する プロパティ を設定します。
置換 : 検索した式を 2 番目の式に置換します。
置換テキスト : 式を置換するためにマークされたグループを指定して、元の正規表現を置換する式を入力します。式の作成中に必要になる可能性のある一般的な正規表現にアクセスするには、[+] ボタンを使用します。
一致しないテキストを出力にコピーする
トークン化 : 正規表現を使用して受信データを分割します。このオプションは 列分割ツール と同様に機能しますが、不要な項目を一致させたり削除したりするのではなく、保持する項目と一致させます。トークン全体に一致させる必要があります。マークされたグループがある場合は、その部分だけが返されます。以下の トークン化メソッドの例 を参照してください。
列に分割 : 指定された区切り記号の各インスタンスにある、単一のデータを複数の列に分割します。
列数 : 作成される列の数を設定します。
余分な列 : 余分な列に適用される動作を選択します。
警告付きで超過分を削除 : 分割を超えたデータがドロップし、情報の超過があったことを示す警告が表示されます。
警告なしで超過分を削除 : 分割を超えたデータがドロップし、情報の超過があったことを示す警告は表示されません。
エラー : 分割処理以降にデータが連続しているとエラーが発生し、ワークフローの処理が停止します。
出力ルート名 : 新しく生成される列のベースとなる名前を入力します。新しい列には、整数の連続増加に伴って付加されたルート名として名前が付けられます。
行に分割 :指定された区切り記号の各インスタンスにある、単一のデータを複数の行に分割します。どの行にどの値が存在しているか追跡不可能にならないように、レコードでキー列を使用します。
解析 : 式を新しい列に分割し、新しい列の 名前 、 データ型 、 サイズ を設定します。 出力列 テーブルに次の列を含む新しい列が作成されます。
名前 : 列名を選択して、新しい名前を入力します。
データ型 : ドロップダウンを使用して、新しいデータ型を選択します。
サイズ : データサイズを選択して、新しいサイズを入力します。
式 : 自動的に入力されます。
一致 : 数値を含む列を追加します。式が一致した場合は 1 、一致しなかった場合は 0 を返します。
一致ステータスの列名 : 追加された列の名前を指定します。
一致しない場合はエラー : 式と文字列が一致しない場合にエラーが生成されるようにする場合に選択して、ワークフロー処理を終了します。
トークン化メソッドの例
以下のユースケースは、Regex ツールのトークン化メソッドに依存しています。
9文字の文字列 123456789 を3つのフィールドに解析します。正規表現は
...
です。9 文字の文字列を 3 つのフィールドに解析し、2 番目の文字のみを返します。正規表現は
.(.).
です。区切り記号 Ctrl-A を使用してフィールドを解析します。 Ctrl-A で区切られた文字列をトークン化する正規表現は
[^\cA]+
です。[^...]
角括弧は、文字セット内の 1 文字への一致を指定します。セットを^
で開始すると、セットにはない任意の文字に一致するように変更されます。\cA
これは単に Ctrl-A 文字と一致します。+
これは、前の 1 つ以上の文字と一致することを意味します。
入力を保持するために空白のトークンを許可します: abc,,def 正規表現は
([^,]*) (?:,|$)
です。(...)
括弧は、式のマークされたグループを作成します。トークン化モードでは、入力フィールドの大部分を一致させても、マークされたサブセットのみを返すことができます。こうすることで、区切り記号を返さないようにすることができます。マークされた式が 1 しかないかもしれません。[^,]
セットを^
で開始すると、セットにはない任意の文字に一致するようにセットが変更されます (この場合は , です)。*
前の 0 以上の文字に一致し、空のセットを使用できます。無限の数の一致があるので、正規表現エンジンが 0 文字の一致に適合しないからといってここで終わらせることはできません。そのため、何かの文字で一致を終了させる必要があります。(?:....)
これはマークされていないグループです。これは|
に使用する or に必要です。| これは、前後の文字の両方ではなく、いずれか一方の文字に一致することを指します。これは、常にマークされたグループ、またはマークされていないグループで使用する必要があります。
$
文字列の最後に一致します。したがって、(?:,|$)
は , または文字列の末尾まで一致します。
ホームページからのHTMLリンクを解析します。正規表現は
<a .*?>.*?</a>
です。これにより、大きな HTML ドキュメントのすべてのリンクが一連のレコードにプルされます。<a
これはテキスト <a に対するリテラル一致です。.*?.
は任意の文字で、*
は 0 以上です。?
は、*
を変更して、可能な限り最短の一致に一致させます。これがなければ、式は最初のリンクの先頭から最後のリンクの終わりまで、単一のトークンを探す場合があります。>
これはテキスト > に対するリテラル一致です。 ..*?
正規表現全体をまだ満足させる文字の考えられる最短の一致。</a>
これはテキスト </a> に対するリテラル一致です。これで一致は終了します。