正则表达式 – 如何使用正则表达式排除目录?

前端之家收集整理的这篇文章主要介绍了正则表达式 – 如何使用正则表达式排除目录?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚才问了一个关于使用正则表达式从特定目录中的URL中提取匹配的问题.

例如:www.domain.com/shop/widgets/match/

给出的解决方案是^ / shop.* /([^ /])/?$

这将返回“匹配”

但是,我的文件结构已经改变,我现在需要一个表达式,而不是在“pages”和“system”之外的任何目录中返回“match”

基本上我需要一个表达式,它将返回以下“匹配”:

www.domain.com/shop/widgets/match/
www.domain.com/match/

但不是:

www.domain.com/pages/widgets/match/
www.domain.com/pages/

www.domain.com/system/widgets/match/
www.domain.com/system/

我一直在努力奋斗几天.

谢谢

解决方法

这只是Grahams上面很好的答案的替代方案. C#中的代码(但是正则表达式部分,无关紧要):

void MatchDemo()
{
    var reg = new Regex("(                  "   +
                        "   (\\w+[.])       "   +
                        "   |               "   +
                        "   (\\w+[/])+      "   +
                        ")                  "   +
                        "(shop[/]|\\w+[/])  "   +               //the URL-string must contain the sequence "shop"
                        "(match)            ",RegexOptions.IgnorePatternWhitespace);

    var url = @"www.domain.com/shop/widgets/match/";

    var retVal = reg.Match(url).Groups[5];                      //do we have anything in the fifth parentheses?

    Console.WriteLine(retVal);
    Console.ReadLine();
}

/汉斯

猜你在找的正则表达式相关文章