跳到主要内容 跳到补充内容

ExtractRegExGroup - 脚本和图表函数

ExtractRegExGroup() 使用指定的复合正则表达式模式从输入字符串表达式中提取文本。使用该函数时,请在复合正则表达式中指定要使用的组。如果没有找到匹配项,函数将返回空值。

如果在 LOAD 语句中使用 ExtractRegExGroup() 函数,且省略了 field_no,那么该函数将返回多条记录。如果使用 ExtractRegExGroup() 加载多个字段,则会创建所有组合的 Cartesian 产品。

该函数执行大小写敏感的正则表达式操作。您也可以用变种 ExtractRegExGroupI() 来作为替代,执行不区分大小写的正则表达式操作。

语法:  

ExtractRegExGroup (text, regex, group [, field_no])

返回数据类型: 字符串

参数
参数 描述
text 字符串表达式,包含要在返回值中提取的文本。
regex 用于提取文本的正则表达式。
group

在复合正则表达式的情况下,组的编号。

如果正则表达式只包含一个组,请使用 ExtractRegEx() 函数代替。替代方法是使用 ExtractRegExGroup()group 值为 0

您可以指定一个负 group 值,从右向左搜索匹配项。

field_no

要提取的匹配项的编号。当正则表达式在文本中可能有多个匹配项时,这个功能非常有用。例如,指定 4 提取第四个匹配项。

这是可选参数。如果未指定,默认为 1

函数示例
示例 结果
ExtractRegExGroup('abc123 def456','([a-z]+)([0-9]+)',1) 返回 abc(第一场比赛的第一组)。
ExtractRegExGroup('abc123 def456','([a-z]+)([0-9]+)',1,2) 返回 def(第二场比赛的第一组)。
ExtractRegExGroup('abc123 def456','([a-z]+)([0-9]+)',2) 返回 123(第一场比赛的第二组)。
ExtractRegExGroup('abc123 def456','([a-z]+)([0-9]+)',2,2) 返回 456(第二场比赛的第二组)。

适用场景

您可以使用 Extract RegEx() 从可能还包含其他信息的数据(例如,自由文本或 JSON 字符串)中提取您想要隔离的信息。例如:

  • 从文本中提取电子邮件地址、电话号码、账号和其他信息。

  • 从文本中提取数值(如货币)。

  • 规范文本或数字数据的格式。

例 1 - 加载脚本以解析交易代码

例 2 - 加载脚本以提取业务联系信息

例 3 - 从 ISBN 编码中提取组件的加载脚本

例 4 - 提取业务联系信息的图表表达式(与 ExtractRegEx() 比较)

例 5 - URL 解析(与 ExtractRegEx() 比较)

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!