将正则表达式值与精确长度,多个组匹配

时间:2013-06-17 20:12:29

标签: c# asp.net regex

我对正则表达式缺乏经验,但我需要做的是匹配一个URL才能正确路由它。例子:

/2013/06/article-title

/2013/06

/2013

我需要检查所有可能的路径。我做了一些研究,发现了一些关于检查确切长度的信息。但是当我尝试修改它以供我自己使用时,它会返回false。

这是我最简单的方法:

^\\~/([0-9]{4})$

有什么想法吗?感谢。

供参考,以下是试图匹配它的代码:

string url = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath;

Regex r = new Regex(regexp, RegexOptions.IgnoreCase);
m = r.Match(url);

return m.Success;

1 个答案:

答案 0 :(得分:1)

您可以将此组与(?:..)组和使组成为可选的问号一起使用:

^/[0-9]{4}(?:/[0-9]{2}(?:/[\w-]+)?)?$