微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决正则表达式 PCRE 模式选择所有以 /first-url-segment/ 开头的路由,并且在 URL 的后半部分不包含“iframe”

我试图过滤掉以特定字符串开头但没有“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 支持 PCRE 库 libpcre 使用的模式语法

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

所以我想选择所有以 /csr_and_sustainability_information/ 开头的路线,并且不要在 URL 的后半部分包含 "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?))?)?$ 部分确保 iframe 之后没有 /csr_and_sustainability_information/ 字符串。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。