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