请教正则表达式,匹配链接文本
- HTML code
<div class="text"> 2012-02-10 00:18:35 作者:<a href="/member/member.php?username=M-Monroe" class="member_url">琴声水韵</a> 来源:<a href="" target="_blank">新浪网</a> 浏览次数:<span id="hits">628</span> 文字大小:【<a href="javascript:fontZoom(16)">大</a>】【<a href="javascript:fontZoom(14)">中</a>】【<a href="javascript:fontZoom(12)">小</a>】 </div>
匹配结果是:时间 :2012-02-10 00:18:35 作者:琴声水韵 来源:新浪网
[解决办法]
这不应该是正则表达式的问题
既然想把数据取出来,存储的时候就应该存成好获取的,每个数据分别存在一个标签了,带上id或clsaa属性
[解决办法]
- C# code
string str = @"<div class=""text""> 2012-02-10 00:18:35 作者:<a href=""/member/member.php?username=M-Monroe"" class=""member_url"">琴声水韵</a> 来源:<a href="""" target=""_blank"">新浪网</a> 浏览次数:<span id=""hits"">628</span> 文字大小:【<a href=""javascript:fontZoom(16)"">大</a>】【<a href=""javascript:fontZoom(14)"">中</a>】【<a href=""javascript:fontZoom(12)"">小</a>】 </div>"; Regex reg = new Regex(@"(?is)<div\s*class=""text"">(.*?)(?:(?: ){2}([^<>]+)<a[^>]*?>\s*(.*?)</a>){2}"); Match m = reg.Match(str); Console.WriteLine(m.Groups[1].Value); for (int i = 0; i < m.Groups[2].Captures.Count; i++) { Console.WriteLine(m.Groups[2].Captures[i].Value); Console.WriteLine(m.Groups[3].Captures[i].Value); }/* 2012-02-10 00:18:35作者:琴声水韵来源:新浪网*/
[解决办法]
{2}匹配两次
(?:&nsbp;)不捕获这个组