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_]+$
我使用 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_]+$