跳至主要内容
Workday User Guide
上次更新时间 :2023-06-23
REGEX

REGEX

描述

REGEX
一个行函数,用于对某个字符串执行整个字符串匹配
TEXT
将 value 与正则表达式匹配,并返回与正则表达式的第一个捕获组相匹配的字符串部分。

语法

REGEX
(
string_expression
,"
regex_matching_pattern
")

返回值

返回匹配的
TEXT
正则表达式的第一个捕获组的值。如果没有匹配项,则返回
NULL

输入参数

string_expression
必修内容。类型为“”的字段或表达式的名称
TEXT
(或文字字符串)。
regex_matching_pattern
必修内容。基于 Java 编程语言的正则表达式模式匹配语法的正则表达式模式。要返回非 NULL 值,正则表达式模式必须与整个字符串匹配。
TEXT

正则表达式构造

有关用于定义正则表达式匹配模式的构造的信息,请参见正则表达式参考信息。

捕获组和非捕获组

在正则表达式中,通过用一对括号将子模式括起来来指定组。一个模式可以具有多个组,并且这些组可以嵌套。从第一个左括号开始,从左到右对组进行 1-
n
编号。系统始终有一个隐式组 0,其中包含整个匹配项。例如,以下模式:
(a(b*))+(c)
包含三个组:
group 1: (a(b*)) group 2: (b*) group 3: (c)
捕获组
默认情况下,组
会捕获
可生成匹配项的文本,并且仅会捕获最近的匹配项。该
REGEX
函数返回与正则表达式中的第一个捕获组匹配的字符串。例如,如果上述表达式的输入字符串为
abc
,整个
REGEX
函数将匹配
abc
,但仅返回组 1 的结果,即
ab
非捕获组
在某些情况下,您可能希望使用括号对子模式进行分组,但不想捕获文本。非捕获组以 开头。
(?:
(左括号后跟一个问号和冒号)。例如,
h(?:a|i|o)t
匹配项
hat
hit
hot
,但不会捕获
a
i
,或
o
从子表达式

示例

匹配所有可能的电子邮件地址,其模式为
用户名
@
提供商
,但仅从
电子邮件
字段返回电子邮件地址的
提供商
部分:
REGEX([email], "^[a-zA-Z0-9._%+-]+@
([a-zA-Z0-9._-]+)
\.[a-zA-Z]{2,4}$")
匹配 Web 日志的请求行,其中值采用以下格式:
GET /some_page.html HTTP/1.1
并仅返回所请求的 HTML 页面名称:
REGEX([weblog_request_line], "GET\s/
([a-zA-Z0-9._%-]+\.[html])
\sHTTP/[0-9.]+")
从中提取英寸部分
height
字段(示例值为 )
6'2"
5'11"
(请注意使用双引号对原义引号进行转义):
REGEX([height], "\d\'(\d)+""")
提取的所有内容
device
字段,当值为
iPod
iPad
,或
iPhone
REGEX([device], "(iP[ao]d|iPhone)")