跳至主要內容
Workday User Guide
上次更新時間 :2023-06-23
REGEX

REGEX

說明

REGEX
是一個列函數,針對 執行整個字串比對
TEXT
與規則運算式搭配使用,並傳回與規則運算式的第一個擷取群組相符的字串部分。

語法

REGEX
(
string_expression
,"
regex_matching_pattern
")

傳回值

傳回相符的項目
TEXT
規則運算式的第一個擷取群組的值。如果沒有相符項目,則傳回
NULL

輸入參數

string_expression
必填。欄位名稱或運算式類型
TEXT
(或常值字串)。
regex_matching_pattern
必填。規則運算式模式以 Java 程式語言的規則運算式模式比對語法為基礎。若要傳回非 NULL 值,規則運算式模式必須全數相符。
TEXT
值。

規則運算式建構

請參閱「規則運算式參考」,以取得有關定義規則運算式比對模式所用結構的資訊。

擷取與非擷取群組

群組由規則運算式中的一對括號指定,位於子模式前後。模式可有多個群組,且群組可內嵌。群組
從左到右
編號,從第一個左括號開始。一律有隱含的群組 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)")