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,没有匹配,大家能帮我看看问题在哪吗?不胜感激!!!
<a href = "(.+?)" .+?>(.+?)</a>
能帮忙解释一下吗?谢谢
@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
@孤零落叶寒: 这个明白了,但是如果是一段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输出,程序就匹配不上,可否能再告知为啥?
@firewang:
href= 这个地方跟上面的不同,上面有空格,这个没有,你可以把<a href.+?"(.+?)".+?>(.+?)</a> 这样试着去匹配