ADC

模式集和数据集

对大量字符串模式进行字符串匹配操作的策略表达式往往变得冗长而复杂。就处理周期、内存和配置大小而言,评估此类复杂表达式所消耗的资源非常重要。您可以使用模式匹配来创建更简单、资源消耗更少的表达式。

根据要匹配的模式类型,可以使用以下功能之一来实现模式匹配:

  • 模式集是在默认语法策略评估期间用于字符串匹配的索引模式数组。模式集示例:图像类型 {svg、bmp、PNG、GIF、tiff、jpg}。
  • 数据集是模式集的一种特殊形式。它是类型数(整数)、IPv4 地址或 IPv6 地址的模式数组。

patsetdataset 之间的区别:在 dataset 中,我们比较边界条件。例如,如果输入字符串是 1.1.1.11,并且假定 1.1.1.1 模式绑定到 patset 和一个 IPv4 类型的数据集,则会将 patset 和数据集配置为检查请求中是否存在该 IP 地址。计算后, patset 返回输入中存在 1.1.1.1,但 dataset 求值为 false。这是因为边界签入,而 IP 地址不是其他 IP 地址的一部分。这意味着,在绑定模式之后不能有任何整数。

通常,您可以使用模式集或数据集。但是,如果您希望对数字数据或 IPv4 和 IPv6 地址进行特定匹配,则必须使用数据集。

注意:

模式集和数据集只能在默认语法策略中使用。

要使用模式集或数据集,请先创建模式集或数据集,然后将模式绑定到它。然后,当您配置用于比较数据包中的字符串的策略时,请使用适当的运算符并将模式集或数据集的名称作为参数传递。

模式集和数据集