【问题标题】:Ctrl Char regex too restrictiveCtrl Char 正则表达式过于严格
【发布时间】:2022-11-11 21:21:40
【问题描述】:

从这个站点上的另一个线程中,我发现了这个用于检测 AWS WAF 规则的所有 ctrl 字符的正则表达式:

(?i)0x([01][0-9A-F]|7F)

我的问题是它太严格了;它阻止了一个包含以下内容的 URI:

/...120x120.png

如何调整正则表达式以检测 0x12 而不是 ...120x120...

【问题讨论】:

    标签: regex char ctrl


    【解决方案1】:

    您可以使用否定的lookbehind:

    (?i)(?<!d)0x([01][0-9A-F]|7F)
        ^^^^^^^
    

    细节

    • (?i) - 不区分大小写匹配
    • (?&lt;!d) - 左边不允许有数字
    • 0x - 一个 0x 字符串
    • ([01][0-9A-F]|7F) - 第 1 组:01 然后是十六进制字符,或 7F

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-02
      • 2011-06-01
      • 1970-01-01
      • 2015-02-06
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多