list/([^-]*)-([^-]*)-([^-]*)(?:-([^-]*))(?:-([^-]*))-([0-9]*)\.html(?:\?(.*))?list/xxxx-xxxx-xxxx-www-www-1.htmlxxxx参数必须有 www参数可有可无满足以下3种情况·我上面的表达式该怎么改
list/xxxx-xxxx-xxxx-1.html
list/xxxx-xxxx-xxxx-www-1.html
list/xxxx-xxxx-xxxx-www-www-1.html
list/xxxx-xxxx-xxxx-1.html
list/xxxx-xxxx-xxxx-www-1.html
list/xxxx-xxxx-xxxx-www-www-1.html
System.IO.StreamReader reader = new System.IO.StreamReader("e:\\1.txt");
string str = reader.ReadToEnd();
Regex reg = new Regex(@"(?is)list/[^-]+-[^-]+-[^-]+-([^-]+-)?([^-]+-)?[0-9]\.html");
MatchCollection mc = reg.Matches(str);
foreach (Match m in mc)
{
MessageBox.Show(m.Value);
}
{
List<string> urlList = new List<string>();
urlList.Add("list/xxxx-xxxx-xxxx-1.html");
urlList.Add("list/xxxx-xxxx-xxxx-www-1.html");
urlList.Add("list/xxxx-xxxx-xxxx-www-www-1.html");
string pattern = @"(?is)list/(\w+-)+\d+\.html";
Regex reg = new Regex(pattern); foreach (string url in urlList)
{
if (reg.IsMatch(url))
{
Response.Write(url + "===匹配成功");
Response.Write("<br/>");
}
}
}
1 2 3 4 5 6 7
list/c1-t2-k3-b100-e200-o2-1.html1可有可无以 c开头
2必须有 以 t开头
3必须有 以 k开头
45可有可无 b和e开头
6 可有可无 o开头
7必须有 数字就行