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

ExtractRegEx - 脚本和图表函数

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

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

语法:  

ExtractRegEx (text, regex [, field_no])

返回数据类型: 字符串

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

要提取的匹配项的编号。当正则表达式在文本中可能有多个匹配项时,这个功能非常有用。例如,指定 4 提取第四个匹配项。这是可选参数。指定负值可颠倒匹配顺序。

无论函数是在加载脚本还是图表表达式中使用,以下内容都适用:

  • 如果 field_no 为正值,函数将返回一个值,从左到右识别匹配项。

  • 如果 field_no 为负值,函数将返回一个值,从右到左识别匹配项。

加载脚本中使用该函数时:

  • 如果在 LOAD 语句中使用 ExtractRegEx() 函数,且省略了 field_no,则函数生成的记录数与匹配记录数相同。

  • 如果使用 ExtractRegEx() 加载多个字段,且没有一个字段指定 field_no 参数,则会创建所有组合的 Cartesian 产品。

图表表达式中使用函数时:

  • 如果省略 field_no,默认值为 1

函数示例
示例 结果
ExtractRegEx('a,b c;1 2,3','[a-z]|[0-9]', 1) 返回 a,即找到的第一个匹配项。
ExtractRegEx('a,b c;1 2,3','[a-z]|[0-9]', 2) 返回 b,即找到的第二个匹配项。
ExtractRegEx('a,b c;1 2,3','[a-z]|[0-9]', 4) 返回 1,即找到的第四个匹配项。
ExtractRegEx('abc','a|b',-1) 返回 b。指定负值时,匹配次数将反向计算。
ExtractRegEx('A,B C;1 2,3','[a-c]|[4-9]') 返回空值,因为 ExtractRegEx() 区分大小写,而不区分大小写的变量没有使用。
ExtractRegExI('A,B C;1 2,3','[a-c]|[4-9]') 返回 A,因为使用的是不区分大小写的变体 ExtractRegExI()

适用场景

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

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

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

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

例 1 - 从 JSON 中提取电子邮件地址的加载脚本

例 2 - 从货币金额中提取数值的加载脚本

例 3 - 从 JSON 中提取电子邮件地址的图表表达式

本页面有帮助吗?

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