【发布时间】:2022-11-11 21:21:40
【问题描述】:
从这个站点上的另一个线程中,我发现了这个用于检测 AWS WAF 规则的所有 ctrl 字符的正则表达式:
(?i)0x([01][0-9A-F]|7F)
我的问题是它太严格了;它阻止了一个包含以下内容的 URI:
/...120x120.png
如何调整正则表达式以检测 0x12 而不是 ...120x120...?
【问题讨论】:
从这个站点上的另一个线程中,我发现了这个用于检测 AWS WAF 规则的所有 ctrl 字符的正则表达式:
(?i)0x([01][0-9A-F]|7F)
我的问题是它太严格了;它阻止了一个包含以下内容的 URI:
/...120x120.png
如何调整正则表达式以检测 0x12 而不是 ...120x120...?
【问题讨论】:
您可以使用否定的lookbehind:
(?i)(?<!d)0x([01][0-9A-F]|7F)
^^^^^^^
细节:
(?i) - 不区分大小写匹配(?<!d) - 左边不允许有数字0x - 一个 0x 字符串([01][0-9A-F]|7F) - 第 1 组:0 或 1 然后是十六进制字符,或 7F
【讨论】: