<a href="/uploads/111.rar">/uploads/111.rar </a> 取文件路径,如何用正则表达式实现
string str = "<a href=\"/uploads/111.rar\">/uploads/111.rar </a>";
System.Text.RegularExpressions.Regex reg=new System.Text.RegularExpressions.Regex(@"<a\s[^>].*?href=""(?<src>[^""].*)""[^>].*?>",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.MatchCollection m = reg.Matches(str); //设定要查找的字符串
for (int i = 0; i < m.Count; i++)
{
Response.Write(m[i].Groups["src"].ToString()+"<br>");
}这样写无法获取路径 /uploads/111.rar
string str = "<a href=\"/uploads/111.rar\">/uploads/111.rar </a>";
System.Text.RegularExpressions.Regex reg=new System.Text.RegularExpressions.Regex(@"<a\s[^>].*?href=""(?<src>[^""].*)""[^>].*?>",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.MatchCollection m = reg.Matches(str); //设定要查找的字符串
for (int i = 0; i < m.Count; i++)
{
Response.Write(m[i].Groups["src"].ToString()+"<br>");
}这样写无法获取路径 /uploads/111.rar
string strPattern = @"(/[\W-]+)+\.(rar)?(doc)?(txt)?";
Match m = Regex.Match(strInput, strPattern, RegexOptions.IgnoreCase);
string filepath="";
while (m.Success)
{
GroupCollection mc = m.Groups;
filepath = m.Value;
return;
}
Response.Write(filepath);
如此可以匹配 rar doc txt 3种类型文件 如果需要其他类型继续往后添加就可以了
如果想匹配所有类型的 正则这样写:
string strPattern = @"(/[\W-]+)+\.[\W-]+";
string str = "<a href=\"/uploads/111.rar\">/uploads/111.rar </a> ";
Console.WriteLine(Regex.Match(str, "href=\"([^\"]*)\"").Groups[1].Value);
string partten="<a href=\"(?<href>[^>]+)\">(?<topic>[^<]+)</a>";
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(partten, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.MatchCollection m = reg.Matches(str); //设定要查找的字符串
for (int i = 0; i < m.Count; i++)
{
Response.Write(m[i].Groups["href"].ToString() + "<br>");
}
Response.End();