0

我想与正则表达式 PCRE 匹配的示例 GET 请求:

random.php?blue=value1&green=value2&red=value3&orange=value4&grey=value5&black=value6

事实:

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

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

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

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

值始终介于 1-20 之间,并带有字母数字 - .php?blue=[a-zA-Z0-9]{1,20}

你会如何处理这个问题?

4

1 回答 1

1

也许是这样的:

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

(配上你想要的颜色)

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

我添加了对最终锚部分的支持#.*。如果您不需要或不想要它,请随意删除它。

于 2017-12-04T12:31:23.417 回答