正規表現ツール
正規表現ツールは、正規表現構文を使用してデータの解析、一致、置換を行います。
正規表現のサポート
正規表現は Designer Cloud でサポートされていますが、式と式そのものがデータに与える影響の責任についてはユーザー自身が担うことになります。
正規表現の記述方法に関するその他のリソースについては、https://regex101.com/ (Alteryx と無関係のサイト)、または(Perl互換の)正規表現を対話的に試すために使用できるWindows用の RegEx Coach (Alteryxと無関係)グラフィカルアプリを参照してください。
Boost RegEx の詳細については、これらのリソースを参照してください。
ツールの設定
[解析する列]を選択します。
正規表現 を入力します。一般的な正規表現を表示するには、プラス記号ボタンを使用します。詳細については、Perl正規表現構文 Webサイトを参照してください。
検索で大文字と小文字を区別するには、[大文字と小文字を区別する] にチェックを入れます。
解析時に使用する [出力方法] を選択し、関連するプロパティを設定します。
一致: 数値を含む列を追加します。式が一致した場合は1 、一致しなかった場合は0を返します。
一致ステータスの列名: 追加された列の名前を指定します。
解析: 式を新しい列に分割し、新しい列の 名前 と データ型 を設定します。出力列 テーブルに次のパラメーターを含む新しい列が作成されます。
名前: 列名を選択して、新しい名前を入力します。
データ型: ドロップダウンを使用して、新しいデータ型を選択します。
式: 自動的に入力されます。
置換: 検索した式を2番目の式に置換します。
Replace With: 式を置換するためにマークされたグループを指定して、元の正規表現を置換する式を入力します。一般的な正規表現を表示するには、プラス記号ボタンを使用します。
一致しないテキストを出力にコピーするには、[一致しないテキストを出力にコピーする] にチェックを入れます。
トークン化: 正規表現を使用して受信データを分割します。このオプションは 列分割ツール と同様に機能しますが、不要な項目を一致させて削除するのではなく、保持したい項目と一致させます。トークン全体に一致させる必要があります。マークされたグループがある場合は、その部分だけが返されます。以下のトークン化メソッドの例を参照してください。
列に分割: 指定された区切り記号の各インスタンスにある、1列のデータを複数の列に分割します。
出力列の数: 作成される列の数を設定します。
出力列ヘッダー: 新しく生成される列のベースとなる名前を入力します。新しい列には、整数の連続増加に伴って付加されたルート名として名前が付けられます。
出力に余分な列がある場合: 余分な列に適用される動作を選択します。
含めない: 分割を超えたデータがドロップされ、情報の超過があったことを示す警告は表示されません。
含めずに警告を表示する: 分割を超えたデータが削除され、情報の超過があったことを示す警告が表示されます。
エラー(データの処理を停止): 分割を超えたデータがエラーを発生させ、ワークフローの処理が停止します。
行に分割: 指定された区切り記号の各インスタンスにある、1列のデータを複数の行に分割します。どの行にどの値が存在しているか追跡不可能にならないように、レコードでキー列を使用します。
トークン化メソッドの例
以下のユースケースは、正規表現ツールのトークン化メソッドに依存しています。
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>」のリテラル一致です。これで一致は終わりです。