正则表达式仅匹配末端没有连字符和四位数的URL

时间:2016-02-09 17:34:54

标签: regex iis rewrite

我正在尝试为产品网址创建IIS重写规则。此规则的正则表达式应仅与以下URL匹配:

catalog/products/gl1800-airbag.aspx

catalog/products/cab2.aspx

网址就像

catalog/products/gl1800-airbag-2007.aspx

catalog/products/cab2-2007.aspx

不应该匹配。 URL的最后部分可以有多少连字符并不重要,它只能以“-0000”(年)之类的结尾。 我不擅长正则表达式而且只能达到这个目的:

catalog/products/([^/-0-9]+)\.aspx$

第二个网址会与之匹配,但首先不会。我不知道如何在这里设置位数,即使我的正则表达式是正确的。

1 个答案:

答案 0 :(得分:1)

您可以使用

catalog/products/(?![^/]*\d{4}\.)([^/]+)\.aspx$

请参阅regex demo

[^/]+将匹配/以外的1个或多个字符,(?![^/]*\d{4}\.)否定前瞻一旦在.之前找到4个数字,将无法匹配。