规则语言参考 - Amazon Fraud Detector

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

规则语言参考

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

使用变量

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

$example_variable < 100

使用列表

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

$example_list_variable in @list_name

比较、成员资格和身份运算符

Amazon Fraud Detector 包括以下比较运算符:>、>=、<、<=、! =、==、in、not in

示例如下:

示例:<

$variable < 100

示例:在,不在

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

示例:! =

$variable != "US"

示例:==

$variable == 1000

操作员表

运算符 亚马逊 Fraud Detector 操作员
等于 ==
不等于 !=
Greater than >
Less than <
大于或等于 >=
小于或等于 <=
In in
并且 and
Not !

基础数学

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

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

$variable_1 + $variable_2 < 10

基本数学表数据

运算符 亚马逊 Fraud Detector 操作员
再加上 +
减去 -
Multiply *
Divide /
取模 %

正则表达式(正则表达式)

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

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

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

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

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

正则表达式表

运算符 亚马逊 Fraud Detector 示例
匹配任何以开头的字符串 regex_match(“^mystring”,$variable)
精确匹配整个字符串 regex_match(“mystring”,$variable)
匹配除换行之外的任何字符 regex_match (” 。 “,$变量)
匹配任意数量的字符,但'mystring'之前的换行符除外 regex_match (”。 *mystring”,$变量)
逃避特殊字符 \

正在检查缺失值

有时,检查该值是否缺失是有益的。在 Amazon Fraud Detector 中,它用空值表示。你可以使用以下语法来做到这一点:

$variable != null

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

$variable == null

多种条件

您可以使用and和将多个表达式组合在一起or。当找到单个真值时,Amazon Fraud Detector 会停在OR表达式中,当找到单个假值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 函数

函数 描述 示例
获取当前日期时间 () 以 ISO86 01 UTC 格式给出规则执行的当前时间。你可以使用 getepochmliseconds (getcurrentdatetime ()) 来执行其他操作 getcurrentdatetime () == “2023-03-28T 18:34:02 Z”
is before (DateTime1, DateTime 2) 如果调用方 DateTime 1 在 2 之前,则返回布尔值(真/假) DateTime

isbefore(获取当前日期时间 (),“2019-11-30T 01:01:01 Z”)== “False”

isbefore(获取当前日期时间 (),“2050-11-30T 01:05:01 Z”)== “True”

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

isafter(获取当前日期时间 (),“2019-11-30T 01:01:01 Z”)== “True”

isafter(获取当前日期时间 (),“2050-11-30T 01:05:01 Z”)== “False”

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

字符串运算符

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

其他

运算符 注释

添加评论

# 我的评论