我需要匹配一组网址,它们都必须包含特定的查询参数
(类型= VCL)
到目前为止,我有/http:\/\/myhost:8080\/organization\/(\d*)\/mediaResource?.*$/
哪个网址与http://myhost:8080/organizaton/5/mediaResource?anyParam(s)
形成的网址相匹配,但如果网址包含查询参数类型= VCL
喜欢:http://myhost:8080/organization/5/mediaResource?someParam=foo&type=VCL
有人可以帮助使用正则表达式的最后一部分来获取只包含我关心的查询参数的URL吗?
答案 0 :(得分:2)
您可以使用以下正则表达式:
http:\/\/myhost:8080\/organization\/(\d*)\/mediaResource\?\S*\btype=VCL\b\S*
请参阅demo
我只在?
之前添加了一个斜杠,以便按字面匹配,添加\S*
匹配0个或更多非空白符号,并\btype=VCL\b
以便只有那些具有这个参数是匹配的。
答案 1 :(得分:2)
我强烈建议您使用URI解析器 - 它更易于阅读且更易于维护,并且有人完成了测试组成正则表达式的工作。
我对这款轻量级产品取得了很大的成功: