re.capture

支持的语言:
re.capture(stringText, regex)

说明

使用参数中提供的正则表达式模式从字符串捕获(提取)数据。

此函数接受两个参数:

  • stringText:要搜索的原始字符串。
  • regex:指示要搜索的模式的正则表达式。

正则表达式可以在括号中包含 0 或 1 个捕获组。如果正则表达式包含 0 个捕获组,则该函数返回第一个整个匹配的子字符串。如果正则表达式包含 1 个捕获组,则它将返回捕获组的第一个匹配的子字符串。定义两个或多个捕获组会返回编译器错误。

形参数据类型

STRINGSTRING

返回类型

STRING

代码示例

示例 1

在此示例中,如果 $e.principal.hostname 包含“aaa1bbaa2”,则该示例为 true,因为此函数会返回第一个实例。此示例不包含捕获组。

"aaa1" = re.capture($e.principal.hostname, "a+[1-9]")
示例 2

以下示例会捕获电子邮件地址中 @ 符号后面的所有内容。如果 $e.network.email.from 字段为 test@google.com,则该示例返回 google.com。以下示例包含一个捕获组。

"google.com" = re.capture($e.network.email.from , "@(.*)")
示例 3

如果正则表达式与文本中的任何子字符串都不匹配,则该函数会返回空字符串。排除空字符串使您可以省略没有发生匹配的事件,这在使用 re.capture() 和“不等于”运算时尤其重要:

// Exclude the empty string to omit events where no match occurs.
"" != re.capture($e.network.email.from , "@(.*)")

// Exclude a specific string with an inequality.
"google.com" != re.capture($e.network.email.from , "@(.*)")