【问题标题】:Regular expression matching only URLs not having hyphen and four digits at the end正则表达式仅匹配最后没有连字符和四位数字的 URL
【发布时间】:2016-02-10 01:40:54
【问题描述】:

我正在尝试为产品 URL 创建 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$

第二个 URL 将匹配它,但第一个不匹配。我不确定如何在此处设置位数,即使我的正则表达式是正确的。

【问题讨论】:

    标签: regex iis rewrite


    【解决方案1】:

    你可以使用

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

    regex demo

    [^/]+ 将匹配除 / 之外的 1 个或多个字符,而 (?![^/]*\d{4}\.) 否定前瞻将在找到 . 之前的 4 位数字后匹配失败。

    【讨论】:

      猜你喜欢
      • 2021-10-14
      • 2017-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-29
      相关资源
      最近更新 更多