Azure Verizon 使用什么正则表达式引擎?

What regular expression engine does the Azure Verizon use?

我使用 Verizon Premium 订阅下的端点创建了 Azure CDN。然后我登录到 Azure Verizon 平台以向引擎添加新规则。如果 URL 末尾没有扩展名,则会自动添加 .html。在 Azure Verizon 中,它看起来像这样: 但是,如果您将 .+\/[^\.]\w+$ 替换为 ^.*/[^/.]+$,它将无法正常工作,不知道为什么,也不会出现验证错误。在我阅读 this article 之后,我怀疑正则表达式的味道与此有关,但我一点也不确定。

当您不确定所使用的正则表达式引擎时,请尝试仅使用最常见的正则表达式结构,例如 .*[...]。因此,请尝试使用 [a-zA-Z0-9_],而不是 \w

不要在 [...] 中转义任何内容,请注意,要做到这一点,您需要将 ] 紧跟在初始 [ 之后(不是 ECMAScript 风格,您将不得不转义]里面有一个字符class),-可以放在字符class未转义的末尾,^不应该放在开头。请注意,\ 只能在 NFA 正则表达式中转义,在基于 POSIX 的正则表达式中,在方括号表达式中,\ 被解析为文字 \ 字符,如 POSIX方括号表达式不支持其中的正则表达式转义。在 [...] 中转义 . 是没有意义的,当使用 u 修饰符编译时,[\.] 是 JS ES6 正则表达式中的无效模式。所以,写成 [^.].

比较安全

正则表达式定界符只在某些编程语言中用于定义正则表达式,但在像这样的软件中你只处理字符串模式。因此,/ 没有任何特殊之处,不必转义。

因此,我将在此处使用以下正则表达式:

.+/[^.][0-9a-zA-Z_]+$