代码之家  ›  专栏  ›  技术社区  ›  Syntyche Ackerley

具有多个参数随机值的URL上的正则表达式PCRE匹配

  •  0
  • Syntyche Ackerley  · 技术社区  · 8 年前

    我希望与正则表达式PCRE匹配的示例获取请求:

    随机的php?蓝色=值1&绿色=值2&红色=值3&橙色=值4&灰色=值5&黑色=值6

    事实:

    随机的php-文件名是随机的,只有“.php?”是固定的

    我有大约10种颜色定义为参数

    没有特定的颜色顺序-。php?蓝色=[a-zA-Z0-9]{1,20}

    可以只使用2种颜色作为参数,也可以全部使用10种颜色,但我想匹配所有GET请求,多个参数用\&

    数值始终在1-20和字母数字-。php?蓝色=[a-zA-Z0-9]{1,20}

    你会怎么做?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Casimir et Hippolyte    8 年前

    可能类似于:

    [^\s/?]+\.php\?((?:blue|orange|red|black)=[a-zA-Z0-9]{1,20})(?:&(?1)){1,9}(?:$|#.*)
    

    (配上您想要的颜色)

    (?1) 是对第一个捕获组子模式的引用。

    我为最终锚定部分添加了支持 #.* . 如果你不需要或不想要,请随意移除。