本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
規則語言參考
下一節概述 Amazon 詐騙偵測器中的運算式 (亦即規則寫入) 功能。
使用變數
您可以使用已評估事件類型中定義的任何變數做為運算式的一部分。使用美元符號來表示一個變量:
$example_variable < 100
使用清單
您可以使用與變數類型相關聯且已填入項目做為規則運算式一部分的任何清單。使用美元符號來指示清單項目值:
$example_list_variable in @list_name
比較,成員資格和身份運營商
Amazon 詐騙偵測器包括下列比較運算子:>、>=、<、<=、! =,==,在中,不在
範例如下:
範例:
$variable < 100
範例:在中,不在
$variable in [5, 10, 25, 100]
例如:! =
$variable != "US"
範例:
$variable == 1000
運算子表
運算子 | 亞馬遜欺詐檢測器操 |
---|---|
等於 | == |
不等於 | != |
大於 | > |
小於 | < |
大於或等於 | >= |
小於或等於 | <= |
In (入) | in |
及 | 以及 |
或 | 或 |
Not | ! |
基本數學
您可以在運算式中使用基本數學運算子 (例如,+、-、*、/)。典型的使用案例是當您需要在評估期間合併變數時。
在下面的規則中,我們$variable_1
使用添加變量$variable_2
,並檢查總數是否小於 10。
$variable_1 + $variable_2 < 10
基本數學表資料
運算子 | 亞馬遜欺詐檢測器操 |
---|---|
加 | + |
減去 | - |
Multiply | * |
Divide | / |
模 | % |
正則表達式
您可以使用正則表達式來搜索特定的模式作為表達式的一部分。如果您希望為其中一個變量匹配特定的字符串或數值,這將特別有用。Amazon 詐騙偵測器僅在使用規則運算式時支援比對 (例如,它會根據提供的字串是否與規則運算式相符,傳回 True/False)。亞馬遜欺詐檢測器的正則表達式支持基於 Java 中的 .match()(使用 RE2J 正則表達式庫)。互聯網上有幾個有用的網站可用於測試不同的正則表達式模式。
在下面的第一個例子中,我們首先將變量轉換email
為小寫。然後,我們檢查模式@gmail.com
是否在email
變量中。請注意,第二個週期被轉義,以便我們可以明確地檢查字符串.com
。
regex_match(".*@gmail\.com", lowercase($email))
在第二個範例中,我們檢查變數是否phone_number
包含國家/地區代碼,+1
以判斷電話號碼是否來自美國。加號被轉義,以便我們可以明確地檢查字符串+1
。
regex_match(".*\+1", $phone_number)
正則表達式
運算子 | 亞馬遜欺詐檢測器示 |
---|---|
匹配任何以開頭的字符串 | 正則表達式匹配(「^ 我的字符串」,$ 變量) |
完全匹配整個字符串 | 正則表達式匹配(「我的字符串」,$ 變量) |
匹配除新行以外的任何字符 | 正則表達式匹配(」 。 「,$ 變量) |
匹配任意數量的字符,除了「我的字符串」之前的新行 | 正則表達式匹配 (」. * 我的字符串」,$ 變量) |
跳脫特殊字元 | \ |
檢查缺少值
有時,檢查該值是否丟失是有益的。在亞馬遜欺詐檢測器,這是由 null 表示。您可以使用以下語法來執行此操作:
$variable != null
同樣,如果您想檢查一個值是否不存在,則可以執行以下操作:
$variable == null
多重條件
您可以使用and
和將多個運算式組合在一起or
。找到單個真值時,Amazon 詐騙偵測器會在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函數
函數 | 描述 | 範例 |
---|---|---|
獲取當前日期時間() | 以 ISO8601 UTC 格式提供規則執行的目前時間。您可以使用極限毫秒(獲取目前日期時間())來執行其他操作 | 獲取當前日期時間()=「2023 年 3 月 28 日」 |
伊斯之前 (DateTime1, DateTime 2) | 返回一個布爾值(真/假),如果調用者 DateTime 1 是 2 之前 DateTime | 之前(獲取當前日期時間(),「2019 年 11 月 30 日 01:01 Z」)==「假」 是之前(獲取當前日期時間(),「2050-11-30 噸 01:05 Z」)==「真」 |
伊斯福DateTime特 (1, DateTime 2) | 返回一個布爾值(真/假),如果調用者 DateTime 1 是 2 之後 DateTime | 之後(獲取當前日期時間(),「2019 年 11 月 30 日 01 日 Z」)==「真」 之後(獲取當前日期時間(),「2050-11-30 噸 01:05 Z」)==「假」 |
平均毫秒 () DateTime | 需要 a DateTime 並返回以DateTime紀元毫秒為單位。對於在日期執行數學運算非常有用 | 毫秒 (「2019 年 11 月 1 日 1 時 1 時」) == 1575032461 |
字串運算子
運算子 | 範例 |
---|---|
將字符串轉換為大寫 | 大寫($ 變量) |
將字符串轉換為小寫 | 小寫($ 變量) |
其他
運算子 | 註解 |
---|---|
添加評論 |
# 我的評論 |