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 忽略此表达式的匹配报告。它旨在用于逻辑组合中的子表达式。