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": []
}
- regexes
(重複 extensions.matching.input_matchers.hyperscan.v3alpha.Hyperscan.Regex,必要) 指定輸入應比對的一組正則表達式。
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": ...
}
- regex
(字串,必要) 正則表達式。
此表達式必須僅表示要比對的模式,沒有分隔符號或旗標。
- id
(uint32) 正則表達式的 ID。
此選項旨在用於邏輯組合中的子表達式。
- caseless
(布林值) 比對會以不區分大小寫的方式執行。
表達式仍然可以使用 PCRE 符號 (尤其是
(?i)
和(?-i)
) 來開啟和關閉不區分大小寫的比對。
- dot_all
(布林值) 比對
.
將不會排除換行符號。
- multiline
(布林值)
^
和$
錨點會比對資料中的任何換行符號。
- allow_empty
(布林值) 允許可與空字串比對的表達式。
此選項指示編譯器允許可與空緩衝區比對的表達式,例如
.?
、.*
、(a|)
。由於 Hyperscan 可以傳回表達式的每個可能比對,因此這類表達式通常執行速度非常慢。
- utf8
(布林值) 將模式視為 UTF-8 字元序列。
- ucp
(布林值) 對於字元類別使用 Unicode 屬性。
此選項指示 Hyperscan 對於字元助憶符號 (例如
\w
和\s
) 以及 POSIX 字元類別,使用 Unicode 屬性而不是預設的 ASCII 解譯。僅在與utf8
搭配使用時才有意義。
- combination
(布林值) 邏輯組合。
此選項指示 Hyperscan 將此表達式剖析為邏輯組合語法。邏輯限制包含運算元、運算子和括號。運算元是表達式索引,而運算子可以是
!
、&
或|
。
- quiet
(布林值) 不要執行任何比對報告。
此選項指示 Hyperscan 忽略此表達式的比對報告。它旨在用於邏輯組合中的子表達式。