Hyperscan 匹配器(proto)

此扩展的限定名称为 envoy.matching.input_matchers.hyperscan

注意

此扩展仅在 contrib 镜像中可用。

注意

此扩展功能完备,但尚未经过大量生产环境测试,使用时请注意这一点。

此扩展未经过硬化,仅应在上下游都可信赖的部署中使用。

提示

此扩展扩展并可与以下扩展类别一起使用

Hyperscan 配置概述.

extensions.matching.input_matchers.hyperscan.v3alpha.Hyperscan

[extensions.matching.input_matchers.hyperscan.v3alpha.Hyperscan proto]

Hyperscan 正则表达式匹配器。匹配器使用 Hyperscan 引擎,该引擎利用 x86 SIMD 指令来加速对数据流中的大量正则表达式进行同时匹配。

{
  "regexes": []
}
正则表达式

(repeated extensions.matching.input_matchers.hyperscan.v3alpha.Hyperscan.Regex, REQUIRED) 指定输入应匹配的一组正则表达式。

extensions.matching.input_matchers.hyperscan.v3alpha.Hyperscan.Regex

[extensions.matching.input_matchers.hyperscan.v3alpha.Hyperscan.Regex proto]

{
  "regex": ...,
  "id": ...,
  "caseless": ...,
  "dot_all": ...,
  "multiline": ...,
  "allow_empty": ...,
  "utf8": ...,
  "ucp": ...,
  "combination": ...,
  "quiet": ...
}
正则表达式

(string, REQUIRED) 正则表达式。

表达式必须仅表示要匹配的模式,不包含分隔符或标志。

ID

(uint32) 正则表达式的 ID。

此选项旨在用于逻辑组合中的子表达式。

不区分大小写

(bool) 匹配将不区分大小写执行。

表达式仍可以使用 PCRE 令牌(特别是 (?i)(?-i))来打开和关闭不区分大小写的匹配。

点包含所有

(bool) 匹配 . 不会排除换行符。

多行

(bool) ^$ 锚点匹配数据中的任何换行符。

允许为空

(bool) 允许可以与空字符串匹配的表达式。

此选项指示编译器允许可以与空缓冲区匹配的表达式,例如 .?.*(a|)。由于 Hyperscan 可以返回表达式的所有可能匹配项,因此此类表达式通常执行速度非常慢。

UTF8

(bool) 将模式视为 UTF-8 字符序列。

UCP

(bool) 为字符类使用 Unicode 属性。

此选项指示 Hyperscan 对字符助记符(如 \w\s)以及 POSIX 字符类使用 Unicode 属性,而不是默认的 ASCII 解释。它仅在与 utf8 结合使用时才有意义。

组合

(bool) 逻辑组合。

此选项指示 Hyperscan 将此表达式解析为逻辑组合语法。逻辑约束包括操作数、运算符和括号。操作数是表达式索引,运算符可以是 !&|

静默

(bool) 不执行任何匹配报告。

此选项指示 Hyperscan 忽略此表达式的匹配报告。它旨在用于逻辑组合中的子表达式。