请教:验证<a href>到</a>之间的正则表达式怎么写? 我要提取网页<a href></a>中的值,请问1:如果包含<a href></a>怎么写2:如果不包含怎么写? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <a\s+href[^>]+>([^<]+)</a> mobydick(敌伯威|我排著队拿著爱的号码牌): 多谢,你帮我解决了第一个问题,那第2个问题是提取<a href></a>中包含的字符怎么写? 第二个试试这个(?<=[\<]a[\\s]+href[^>]+)[\\s][\\S]+(?=[\<]a[\>]) 小熊:不可以我现在是这么做的。。用mobydick的提取出了<a href></a>完整的,放到了一个列表里。然后将列表读到datatable里,然后再用[\u4e00-\u9fa5]提取中文,结果显示在datagrid里全是system.什么什么 Regex reg2=new Regex(@"(?<=([\<]\s*a[\s]+href[^\>]+[\>]))[\s\S]+(?=([\<][\/]a[\>]))");这个应该可以了我测试了,直接取<a href>到</a>的内容 小熊:这个可以取第一个,所以我是这么做的1:用(?<=[\<]a[\\s]+href[^>]+)[\\s][\\S]+(?=[\<]a[\>])取到了所以包含<a href></a>的数据2:将这些数据放入了列表3:用foreach取出数据并再次用你的正则表达式验证。。foreach(string str in alHyperLinks){dRow=dt.NewRow();string strregex1=@"(?<=([\<]\s*a[\s]+href[^\>]+[\>]))[\s\S]+(?=([\<][\/]a[\>]))";System.Text.RegularExpressions.Regex r1=new Regex(strregex1,System.Text.RegularExpressions.RegexOptions.None);MatchCollection m1=r1.Matches(str);dRow["URL"]=m1.ToString();dt.Rows.Add(dRow);}但是得出的结果全是System.Text.RegularExpressions.MatchCollection,请问怎么办。 MatchCollection m1=r1.Matches(str);for(int i=0;i<m1.Count;i++){ MessageBox.Show(m1[i].Value);}m1[i].Value你想要的值 string myRegexStr = ".....";//用上面的string yourStr = "";//MacthCollection mc = Regx.Matches(yourStr, myRegexStr);foreach(Match m in mc){ m.Groups[0].Value;//问题1. m.Groups[1].Value;//问题2.} "<a\s+href[^>]+>([^<]+)</a>"; 能搞定 string s=....Regex reg = new Regex("(?<=(href[\\s]*=[\\s]*\"))[\\s\\S]*?(?=(\"))",RegexOptions.IgnoreCase);Console.WriteLine(reg.Match(s).Value); 小弟遥感专业想搞GIS开发,不知道要看一些那些方面的书,求教。。。 C#邮件客户端关于邮件接收问题。。。求解 急急急!、 怎么去取reapter的值` listview问题 winform下的打印问题 MemoryStream是否需要Close()? 关于TCP怎么建立连接问题? C#中怎么连接Access2003数据库文件啊? 请指点一下命令行下编译C#的环境设置 外行,问问网站建设J2EE架构和.Net架构的优劣都在哪里 一个delegate的问题
多谢,你帮我解决了第一个问题,那第2个问题是提取<a href></a>中包含的字符怎么写?
(?<=[\<]a[\\s]+href[^>]+)[\\s][\\S]+(?=[\<]a[\>])
我测试了,直接取<a href>到</a>的内容
1:用(?<=[\<]a[\\s]+href[^>]+)[\\s][\\S]+(?=[\<]a[\>])取到了所以包含<a href></a>的数据
2:将这些数据放入了列表
3:用foreach取出数据并再次用你的正则表达式验证。。
foreach(string str in alHyperLinks)
{
dRow=dt.NewRow();
string strregex1=@"(?<=([\<]\s*a[\s]+href[^\>]+[\>]))[\s\S]+(?=([\<][\/]a[\>]))";
System.Text.RegularExpressions.Regex r1=new Regex(strregex1,System.Text.RegularExpressions.RegexOptions.None);
MatchCollection m1=r1.Matches(str);
dRow["URL"]=m1.ToString();
dt.Rows.Add(dRow);
}
但是得出的结果全是System.Text.RegularExpressions.MatchCollection,请问怎么办。
{
MessageBox.Show(m1[i].Value);
}
m1[i].Value你想要的值
string yourStr = "";//MacthCollection mc = Regx.Matches(yourStr, myRegexStr);
foreach(Match m in mc)
{
m.Groups[0].Value;//问题1.
m.Groups[1].Value;//问题2.
}
能搞定
Regex reg = new Regex("(?<=(href[\\s]*=[\\s]*\"))[\\s\\S]*?(?=(\"))",RegexOptions.IgnoreCase);
Console.WriteLine(reg.Match(s).Value);