首页 新闻 会员 周边 捐助

关于正则表达式的问题

0
悬赏园豆:10 [已解决问题] 解决于 2017-05-30 10:15

  static string pattern12 = "<a\\shref = \"([^\"]*)\"\\starget=\"_blank\"\\sclass=\"list-title\">(.*?)</a>";
      string dd = "<a href = \"http://*****/30682993612.html\"  target=\"_blank\" class=\"list-title\">目标2</a>";

Regex reg_title = new Regex(pattern12, RegexOptions.IgnoreCase | RegexOptions.Compiled);

var mats1 = reg_title.Matches(dd);

这里匹配到的值都是0,没有匹配,大家能帮我看看问题在哪吗?不胜感激!!!

xiaoj_wang的主页 xiaoj_wang | 初学一级 | 园豆:194
提问于:2017-05-29 10:36
< >
分享
最佳答案
0
<a href = "(.+?)" .+?>(.+?)</a>
收获园豆:10
孤零落叶寒 | 小虾三级 |园豆:606 | 2017-05-29 12:43

能帮忙解释一下吗?谢谢

xiaoj_wang | 园豆:194 (初学一级) | 2017-05-29 15:48

@firewang: 

你的目标数据是:<a href = "http://*****/30682993612.html"  target="_blank" class="list-title">目标2</a>

<a href = "(.+?)" .+?>(.+?)</a>  

红色的就是匹配的开头

.+? 就是除了\r\n外的其他一个或多个字符,因为有非贪婪的?,所以只要匹配到后面是"就停止匹配。

绿色跟上面.+?一样,匹配的" 后面到< 前面的数据。

这样运行结果就是

group[1].value:http://*****/30682993612.html

group[2].value:目标2

孤零落叶寒 | 园豆:606 (小虾三级) | 2017-05-29 16:11

@孤零落叶寒: 这个明白了,但是如果是一段html的直接输出好像有匹配不了,能够再给解答以下?

html的输入如下:

<div class="newBlog-list-title">
        <span class="date">2014-11-23</span>
        <a href="http://*****/306829936.html"  target="_blank" class="list-title">***</a>
    </div>

如果是这样的html输出,程序就匹配不上,可否能再告知为啥?

xiaoj_wang | 园豆:194 (初学一级) | 2017-05-29 16:47

@firewang: 

href= 这个地方跟上面的不同,上面有空格,这个没有,你可以把<a href.+?"(.+?)".+?>(.+?)</a> 这样试着去匹配

孤零落叶寒 | 园豆:606 (小虾三级) | 2017-05-29 17:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册