正则表达式工具
单个工具示例
“正则表达式”有一个单个工具示例。访问 示例工作流 以了解如何在 Alteryx Designer 中访问此示例和其他更多示例。
可运用“正则表达式”来使用正则表达式语法进行解析、匹配或替换数据。
正则表达式支持
虽然 Designer 支持正则表达式,但用户需要自行构建表达式,表达式对数据产生的影响也由用户进行掌控。
如需获取如何编写正则表达式的更多资料,请访问 https://regex101.com/ (此网站与 Alteryx 无关联),也可以使用 RegEx Coach ,这是一款由独立第三方开发的 Windows 版图形应用程序,供您交互地试验与 Perl 兼容的正则表达式。
如需了解 Boost RegEx 的更多信息,请参阅以下资料:
配置工具
-
选择 转换的格式 中...
-
输入 正则表达式 。使用“+”按钮访问创建表达式时常用的各种正则表达式。访问 Perl 正则表达式语法 网站了解更多信息。
-
不区分大小写 :默认处于选中状态。搜索不区分大小写字母。
-
-
在 中,选择解析时要使用的 。然后配置相关 :用第二个表达式替换所搜索的表达式。
-
替换文本 :输入一个表达式,指定替换原始的正则表达式的标记组。使用“+”按钮访问创建表达式时常用的各种正则表达式。
-
将不匹配的文本复制到输出 :使用正则表达式拆分传入数据。此选项的工作方式与 文本转换到列工具 相似;不同之处在于,此选项匹配的是您想要保留的项,而不是通过匹配移除不需要的项。工具匹配的是整个令牌,如果令牌中有标记组,则工具仅返回标记组部分。前往下方的 令牌化方法示例 。
-
拆分为列 :在每个指定分隔符处拆分数据,从而将一列数据拆分为多列。
-
列数 :设置要创建的列数。
-
多余列 :指定处理多余列的方式。
-
放弃多余列,发出警告 :超出拆分数目的数据将被删除,且显示一条警告,指示存在多余信息。
-
放弃多余项,不发出警告 :超出拆分数目的数据将被删除,且不显示任何警告。
-
错误 :超出拆分数目的数据会导致错误,工作流将停止处理。
-
-
输出根名称 :输入新生成的列应依据的名称。新列名称将以根名称加一个递增整数的形式出现。
-
-
拆分为行 :在每个指定分隔符处拆分数据,从而将一列数据拆分为多行。在记录中使用主键列,这样便于跟踪值来自哪一行。
-
-
解析 :将表达式划分为多个新列,并设置新列的 。解析方式将在 表中创建一个新列,新列包含:
-
名称 :选择列名称即可输入新名称。
-
类型 :使用下拉列表选择新的数据类型。
-
大小 :选择数据大小以输入新的大小。
-
表达式 :自动填充。
-
-
匹配 :如果表达式匹配,则附加一个包含数字 1 的列;如果不匹配,则附加一个包含数字 0 的列。
-
匹配结果列的列名 :指定所附加列的名称。
-
不匹配时报错 :选择此选项可在表达式与字符串不匹配时生成错误,以结束工作流处理。
-
-
令牌化方法示例
这些使用案例利用了正则表达式工具的令牌化方式。
-
将包含 9 个字符的字符串 123456789 解析为 3 个字段。正则表达式为
-
将包含 9 个字符的字符串解析为 3 个字段,且仅返回第二个字符。正则表达式为
.(.).
-
使用分隔符 Ctrl-A 要对以 Ctrl-A 分隔的字符串进行令牌化,可应用的正则表达式是
[^\cA]+
-
[^...]
括号表示与字符集中的单个字符获得匹配。若集使用 -
\cA
这表示仅与 Ctrl-A 字符匹配。 -
+
这表示匹配 1 个或多个上一匹配项。
-
-
允许使用空白令牌以保留条目: abc, ,def 正则表达式为
([^,]*)(?:,|$)
-
(...)
括号用于创建表达式的标记组。令牌化模式允许您匹配输入字段的更多部分,但只返回标记部分的匹配项。这样就可以避免返回分隔符。表达式中只能有一个标记组。 -
[^,]
开头,此正则表达式就变成匹配该字符集中不存在的任何字符,本例的 -
(?:....)
这是一个未标记组。在执行 运算(通过 -
|
这表示匹配运算符之前或之后的项,而不是两者同时匹配。这几乎总是需要与标记组或未标记组配合使用。 -
$
匹配字符串末尾。因此(?:,|$)
-