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