正则表达式 – 如何使用正则表达式排除目录?
发布时间:2020-12-14 05:49:42 所属栏目:百科 来源:网络整理
导读:我刚才问了一个关于使用正则表达式从特定目录中的URL中提取匹配的问题. 例如:www.domain.com/shop/widgets/match/ 给出的解决方案是^ / shop.* /([^ /])/?$ 这将返回“匹配” 但是,我的文件结构已经改变,我现在需要一个表达式,而不是在“pages”和“system
我刚才问了一个关于使用正则表达式从特定目录中的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(); } /汉斯 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |