規則語言參考 - Amazon Fraud Detector

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

規則語言參考

下節概述 Amazon Fraud Detector 中的表達式 (即規則撰寫) 功能。

使用變數

您可以使用評估事件類型中定義的任何變數做為表達式的一部分。使用美元符號來表示變數:

$example_variable < 100

使用清單

您可以使用與變數類型相關聯的任何清單,並將項目填入規則表達式中。使用美元符號來表示清單項目值:

$example_list_variable in @list_name

比較、成員資格和身分運算子

Amazon Fraud Detector 包含下列比較運算子:>、>=、<、<=、!=、==、in、not in

範例如下:

範例:<

$variable < 100

範例: in, not in

$variable in [5, 10, 25, 100]

範例:!=

$variable != "US"

範例:==

$variable == 1000

運算子資料表

運算子 Amazon Fraud Detector Operator
等於 ==
不等於 !=
大於 >
小於 <
大於或等於 >=
小於或等於 <=
In (入) in
以及
Not !

基本數學

您可以在表達式中使用基本數學運算子 (例如 +、-、* 、/)。典型的使用案例是在評估期間需要合併變數時。

在下面的規則中,我們將$variable_1使用 新增變數$variable_2,並檢查總數是否小於 10。

$variable_1 + $variable_2 < 10

基本數學資料表資料

運算子 Amazon Fraud Detector Operator
Plus +
最小值 -
*
/
Modulo %

規則運算式 (regex)

您可以使用 regex 來搜尋特定模式,做為表達式的一部分。如果您想要比對其中一個變數的特定字串或數值,這特別有用。Amazon Fraud Detector 僅在使用規則運算式時支援比對 (例如,它會根據提供的字串是否與規則運算式相符,傳回 True/False)。Amazon Fraud Detector 的規則表達式支援是以 Java 中的 .matches() 為基礎 (使用 RE2J 規則表達式程式庫)。網際網路上有數個實用的網站,可用於測試不同的規則表達式模式。

在下面的第一個範例中,我們首先將變數轉換為email小寫。然後,我們會檢查模式是否@gmail.comemail變數中。請注意,第二個期間會逸出,以便我們可以明確檢查字串 .com

regex_match(".*@gmail\.com", lowercase($email))

在第二個範例中,我們會檢查變數是否phone_number包含國家/地區碼+1,以判斷電話號碼是否來自美國。加號會逸出,以便我們可以明確檢查字串 +1

regex_match(".*\+1", $phone_number)

Regex 資料表

運算子 Amazon Fraud Detector 範例
比對開頭為 的任何字串 regex_match("^mystring",$variable)
完全比對整個字串 regex_match("mystring",$variable)
比對新行以外的任何字元 regex_match(".", $variable)
比對除「mystring」前的新行以外的任意數量字元 regex_match(".*mystring",$variable)
逸出特殊字元 \

檢查是否有遺失值

有時檢查值是否遺失會有幫助。在 Amazon Fraud Detector 中,這會以 null 表示。您可以使用下列語法來執行此操作:

$variable != null

同樣地,如果您想要檢查值是否存在,您可以執行下列動作:

$variable == null

多個條件

您可以使用 and和 將多個表達式結合在一起or。Amazon Fraud Detector 會在找到單一 true 值時在OR表達式中停止,並在找到單一 false 值AND時在 中停止。

在下面的範例中,我們使用 條件來檢查兩個and條件。在第一個陳述式中,我們正在檢查變數 1 是否小於 100。在第二個階段,我們會檢查變數 2 是否不是美國。

由於規則使用 and,因此整個條件都必須是 TRUE,才能評估為 TRUE。

$variable_1 < 100 and $variable_2 != "US"

您可以使用括號將布林值操作分組,如下所示:

$variable_1 < 100 and $variable_2 != "US" or ($variable_1 * 100.0 > $variable_3)

其他表達式類型

DateTime 函數

函式 描述 範例
getcurrentdatetime() 以 ISO8601 UTC 格式提供規則執行的目前時間。您可以使用 getepochmilliseconds(getcurrentdatetime()) 來執行其他操作 getcurrentdatetime() == "2023-03-28T18:34:02Z"
isbefore(DateTime1、DateTime2) 如果發起人 DateTime1 早於 DateTime2,則傳回布林值 (True/False)

isbefore(getcurrentdatetime(), "2019-11-30T01:01:01Z") == "False"

isbefore(getcurrentdatetime(), "2050-11-30T01:05:01Z") == "True"

isafter(DateTime1,DateTime2) 如果發起人 DateTime1 晚於 DateTime2,則傳回布林值 (True/False)

isafter(getcurrentdatetime(), "2019-11-30T01:01:01Z") == "True"

isafter(getcurrentdatetime(), "2050-11-30T01:05:01Z") == "False"

getepochmilliseconds(DateTime) 採用 DateTime,並以 epoch 毫秒傳回該 DateTime。適用於在日期執行數學操作 getepochmilliseconds("2019-11-30T01:01:01Z") == 1575032461

字串運算子

運算子 範例
將字串轉換為大寫 uppercase($variable)
將字串轉換為小寫 lowercase($variable)

其他

運算子 註解

新增註解

# 我的評論