regex匹配带有或不带有查询参数的无扩展名url

时间:2018-11-15 15:37:02

标签: regex

我正在尝试使用或不使用查询参数来匹配无扩展名的url。 到目前为止,.+\/[^.\/]*$与其中的一些匹配,但是当查询参数中存在.时失败了

例如我想要的是

http://www.example.com/ -> MATCH
http://www.example.com/abc -> MATCH
http://www.example.com/abc/def/ -> MATCH
http://www.example.com/abc/def.ext/ -> MATCH
http://www.example.com/abc?param=abc.def -> MATCH
http://www.anything.com/abc/def.ext/?param=abc.ext -> MATCH

http://www.example.com/abc.ext -> DONT MATCH
http://www.example.com/abc/def.ext -> DONT MATCH
http://www.anything.com/abc/def.ext?param=abc -> DONT MATCH
http://www.anything.com/abc/def.ext?param=abc.def -> DONT MATCH

当查询参数键或值中包含./时,How to match only extensionless URLs?中提供的答案将失败。我尝试了多种模式,但无法获得理想的结果。

我是正则表达式的菜鸟。请帮忙。

1 个答案:

答案 0 :(得分:0)

尝试使用正则表达式:.+\/[^.\/]*?(?:\?.+)?$

Demo