【问题标题】:URL rewriting with regular expressions使用正则表达式重写 URL
【发布时间】:2011-09-03 11:04:40
【问题描述】:

我想从下面的 URL 中提取 2 条信息,“events/festivals”和“sandiego.storeboard.com”。

如何用正则表达式做到这一点?

http://sandiego.storeboard.com/classifieds/events/festivals

我需要这些信息来在 IIS 7 中重写 URL

【问题讨论】:

    标签: regex iis-7 url-rewriting


    【解决方案1】:

    试试这个:

    ^http://([^/]*)/classifieds/([^/]*/[^/]*)/
    

    [^/] sn-p 的意思是“所有不是/

    【讨论】:

      【解决方案2】:

      以下 C# 代码将重新运行您请求的两个字符串。

      class Program
      {
          static void Main(string[] args)
          {
              GroupCollection result = GetResult("http://sandiego.storeboard.com/classifieds/events/festivals");
              Console.Write(result[1] + " " + result[2]);
              Console.ReadLine();
          }
      
          private static GroupCollection GetResult(string url)
          {
              string reg = @".*?(\w+\.\w+\.com).*?(events\/festivals)";
              return Regex.Match(url, reg).Groups;
          }
      }
      

      【讨论】:

        【解决方案3】:

        这不是最快的解决方案,但它有效:

        (.*?)/classifieds/(.*)
        

        【讨论】:

        • 可能要使用 .*?用于第一次捕获以最大程度地减少回溯。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-09
        • 2011-04-01
        • 2018-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多