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 , "@(.*)")