使用替换转换数据

使用简单模式匹配或正则 (regex) 表达式转换列中的数据。例如,在 State 列中,可将 CA 转换为 California。

可以使用任何与 Perl 兼容的正则表达式 (Perl Compatible Regular Expression, PCRE),这样的表达式又称为正则表达式。转换应用于数据集中的每个适用行。
  1. 在主页上,将光标悬停在您拥有的数据集上,单击操作,然后选择打开
    如果数据集包含单个表,您将看到转换编辑器。如果数据集包含多个表,您将看到联接图表。在联接图表中,右键单击数据源,然后单击打开以显示转换编辑器。

  2. 将光标悬停在要转换的文本列上,或选择要转换的文本列。
  3. 单击质量磁贴底部的选项,然后单击替换
    提示:要同时替换多个值,请使用替换值列表选项。
  4. 在“替换”步骤编辑器中,指定所需的值匹配方式。例如:
    • 单击使用正则表达式以使用复杂正则表达式 (regex) 进行匹配。
    • 单击仅匹配整个值以将 "male" 更改为 "M",但不将 "female" 更改为 "feM"。
  5. 要替换的字符串字段和新字符串字段中,指定要搜索和替换的文字文本或正则表达式(区分大小写)。
    示例:
    • 要将 "2553 Bolman Court" 更改为 "2553 #Bolman# #Court#",请选择使用正则表达式,在要替换的字符串字段中输入 ([A-Za-z]+),然后在新字符串字段中输入 #$1#
    • 要将 "male" 更改为 "M",请选择仅匹配整个值,在要替换的字符串字段中输入 male,在新字符串字段中输入 M这会将 "male" 更改为 "M",但不将 "female" 更改为 "feM"。

    完成两个字段后,您将在预览窗格中看到已转换数据的预览。调整替换选项,直到在预览窗格中获得所需的转换为止。
  6. 单击添加步骤
    Oracle Analytics 会向“准备脚本”面板添加一个步骤。
  7. 要保存数据准备更改并将其应用到数据,请单击保存

使用正则表达式的替换转换示例

下面介绍了一些使用正则 (regex) 表达式转换数据的示例。

在这些示例中,“搜索表达式”显示要在要替换的字符串字段中输入的内容,“替换值”显示要在新字符串字段中输入的内容。

表 4-1 替换转换示例

搜索表达式 替换值 原始文本 替换文本 注释
@([a-z]+)(?=\.[a-z]{3}) @example MichelePFalk@yahoo.com MichelePFalk@example.com 此示例替换电子邮件地址中的域详细信息。
^Gray|Grey$ Silver

Grey

Gray

Graystone

Silver

Silver

Graystone

^$ 字符意味着仅查找整个字符串匹配项。竖条是表示 OR 的正则表达式,因此,在此示例中,该正则表达式查找 "Gray" 或 "Grey",并替换为 "Silver"。

字符串 Graystone 不进行转换,因为该正则表达式仅查找整个值匹配项。

\d+ 9999

8398 Park Street

123 Oracle Parkway

9999 Park Street

9999 Oracle Parkway

此正则表达式的 "\d" 表示查找一个数字,"+" 表示查找多个数字,然后将找到的数字替换为 "9999"。原始文本只含三个数字时,该替换也有效。
([A-z]+)(\d+) $2

UA101654

US829383

101654

829383

此正则表达式的 "[A-z]" 表示查找一个字母,"+" 表示查找多个连续字母,后接的 "\d" 表示查找一个数字,"+" 表示查找多个数字,这两个部分都用括号括住,这将捕获两个组(第一个组 ([A-z]) 和第二个组 (\d+)),这些组会自动进行编号,然后可以通过对第二个组使用美元符号(例如 "$2")用于替换中。
([A-z]+)(\d+) Postal Code: $2

UA101654

US829383

Postal Code: 101654

Postal Code: 829383

此示例使用的匹配表达式与上一个示例相同,但除了组外,还显示了如何插入自己的替换文本。可以在重新调用的匹配组之前和之后插入文本。