规则语言参考 - Amazon Fraud Detector

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

规则语言参考

以下部分概述了 Amazon Fraud Detector 中的表达式(即规则编写)功能。

使用变量

您可以使用在评估的事件类型中定义的任何变量作为表达式的一部分。使用美元符号表示变量:

$example_variable < 100

使用清单

您可以使用与变量类型关联并填充条目的任何列表作为规则表达式的一部分。使用美元符号表示列表条目值:

$example_list_variable in @list_name

比较、成员资格和身份运营商

亚马逊欺诈检测器包括以下比较运算符:>、>=、<、<=、! =,==,输入,不在

示例如下:

示例:<

$variable < 100

示例:输入,不在

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

示例:! =

$variable != "US"

示例:==

$variable == 1000

操作员表

操作符 亚马逊欺诈探测器操作员
等于 ==
不等于 !=
大于 >
小于 <
大于或等于 >=
小于或等于 <=
In in
And and
或者 or
!

基础数学

可以在表达式中使用基本的数学运算符(例如,+、-、*、/)。一个典型的用例是在评估期间需要合并变量时。

在下面的规则中,我们将变量$variable_1与相加$variable_2,并检查总数是否小于 10。

$variable_1 + $variable_2 < 10

基本数学表数据

操作符 亚马逊欺诈探测器操作员
再加上 +
减去 -
Multiply *
Divide /
模数 %

正则表达式(regex)

你可以使用正则表达式来搜索特定的模式,作为表达式的一部分。如果您想匹配某个变量的特定字符串或数值,这尤其有用。Amazon Fraud Detector 仅在使用正则表达式时支持匹配(例如,根据提供的字符串是否与正则表达式匹配,它会返回 True/False)。亚马逊 Fraud Detector 的正则表达式支持基于 java 中的.matches ()(使用 RE2J 正则表达式库)。互联网上有几个有用的网站可用于测试不同的正则表达式模式。

在下面的第一个示例中,我们首先将变量email转换为小写。然后我们检查模式@gmail.com是否在email变量中。请注意,第二个句点是转义的,因此我们可以明确检查字符串.com

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

在第二个示例中,我们检查变量是否phone_number包含国家/地区代码,+1以确定电话号码是否来自美国。加号是经过转义的,这样我们就可以明确检查字符串+1

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

正则表达式表

操作符 亚马逊欺诈检测器示例
匹配任何以开头的字符串 regex_match(“^mystring”,$变量)
精确匹配整个字符串 regex_match(“mystring”,$variable)
匹配除换行符之外的任何字符 regex_match (” 。 “,$变量)
匹配除'mystring'前面的换行符之外的任意数量的字符 regex_match (”。 *mystring”,$变量)
逃出特殊字符 \

检查缺失值

有时检查该值是否丢失是有益的。在亚马逊欺诈检测器中,这由 null 表示。您可以使用以下语法来执行此操作:

$variable != null

同样,如果你想检查某个值是否不存在,你可以执行以下操作:

$variable == null

多种条件

您可以使用and和将多个表达式组合在一起or。当找到单个真值时,Amazon Fraud Detector 会在OR表达式中停止;当找到单个假值AND时,它会在表达式中停止。

在下面的示例中,我们使用条件检查两个and条件。在第一条语句中,我们正在检查变量 1 是否小于 100。在第二个中,我们检查变量 2 是否不是 US。

假设规则使用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 格式提供规则执行的当前时间。你可以使用 getepochmilseconds (getcurrentdatetime ()) 来执行其他操作 getcurrentdatetime () == “2023-03-28T 18:34:02 Z”
在之前 (DateTime1, DateTime 2) 如果调用方 DateTime 1 在 2 之前,则返回布尔值(真/假)DateTime

isbefore(getcurrentdatetime (),“2019-11-30T 01:01 Z”)== “False”

isbefore(getcurrentdatetime (),“2050-11-30T 01:05:01 Z”)== “True”

isafter (DateTime1, DateTime 2) 如果调用者 DateTime 1 在 2 之后,则返回布尔值(真/假)DateTime

isafter(getcurrentdatetime (),“2019-11-30T 01:01 Z”)== “True”

isafter(getcurrentdatetime (),“2050-11-30T 01:05:01 Z”)== “False”

getepoch milliseconds () DateTime 取 a DateTime 并以纪元毫秒为单位返回。DateTime对于对日期执行数学运算很有用 getepochmilliseconds (“2019-11-30T 01:01:01 Z”) == 1575032461

字符串运算符

操作符 示例
将字符串转换为大写 大写($变量)
将字符串转换为小写 小写($变量)

其他

操作符 Comment

添加评论

# 我的评论