在具有多个参数随机值的 URL 上进行正则表达式 PCRE 匹配
Regex PCRE matching on an URL with multiple parameters random values
我想用正则表达式 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}
你会如何处理这个问题?
可能是这样的:
[^\s/?]+\.php\?((?:blue|orange|red|black)=[a-zA-Z0-9]{1,20})(?:&(?1)){1,9}(?:$|#.*)
(配上你想要的颜色)
(?1)
是对第一个捕获组子模式的引用。
我添加了对最终锚点部分的支持 #.*
。如果您不需要或不想要它,请随时将其删除。
我想用正则表达式 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}
你会如何处理这个问题?
可能是这样的:
[^\s/?]+\.php\?((?:blue|orange|red|black)=[a-zA-Z0-9]{1,20})(?:&(?1)){1,9}(?:$|#.*)
(配上你想要的颜色)
(?1)
是对第一个捕获组子模式的引用。
我添加了对最终锚点部分的支持 #.*
。如果您不需要或不想要它,请随时将其删除。