正则表达式 PCRE 模式到 select 所有以 /first-url-segment/ 开头的路由并且不在 URL 的后半部分包含 "iframe"

Regex PCRE pattern to select all routes starting with /first-url-segment/ AND do not include "iframe" in the latter part of the URL

我正在尝试过滤掉以特定字符串开头但其中没有“iframe”子字符串的路径。 这似乎对我有用 https://regex101.com/r/rIMFDP/1

^\/csr_and_sustainability_information\/(?!.*iframe)

但是在亚马逊上这个正则表达式不起作用https://docs.aws.amazon.com/waf/latest/developerguide/waf-regex-pattern-set-creating.html

上面写着

AWS WAF supports the pattern syntax used by the PCRE library libpcre

我想知道是否可以在该标准内重现我想要的内容

所以我想要 select 所有以 /csr_and_sustainability_information/ 开头的路由并且不在 [=32] 的后半部分包含 "iframe" =]

您可以使用 POSIX 兼容的正则表达式,例如

^/csr_and_sustainability_information/([^i]|i(i|f(i|r(i|a(i|mi))))*([^fi]|f([^ir]|r([^ai]|a([^im]|m[^ei])))))*(i(i|f(i|r(i|a(i|mi))))*(f(r?|ram?))?)?$

this regex demo

([^i]|i(i|f(i|r(i|a(i|mi))))*([^fi]|f([^ir]|r([^ai]|a([^im]|m[^ei])))))*(i(i|f(i|r(i|a(i|mi))))*(f(r?|ram?))?)?$ 部分确保 /csr_and_sustainability_information/ 之后没有 iframe 字符串。