ADC

模式集和数据集

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

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

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

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

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

备注:

  • 模式集和数据集只能在默认语法策略中使用。
  • 从版本 13.1 build 42.x 及更高版本开始,您可以将 50000 个模式绑定到模式集。使用模式集文件,只能将 10000 个模式绑定到模式集。此外,如果在流媒体中使用模式集,则只能将 5000 个模式绑定到该模式集。在重写操作搜索参数、HTTP 正文或基于 TCP 负载的表达式中使用了流式传输模式集。
模式集和数据集

在本文中