正则问题。。。。。。。。。。。。 急```` 在线等。。。
Html为 :
<a href=\ "/Expert/TopicView1.asp?id=5408274\ " target=\ "_blank\ "> 做网上型的一些系统时应该如何估量价格和报价 </a> \r\n\r\n
<a href=\ "/Expert/TopicView1.asp?id=67545654\ " target=\ "_blank\ "> 奇怪现象 </a> \r\n\r\n
<a href=\ "/Expert/TopicView1.asp?id=78980987\ " target=\ "_blank\ "> 如果编程实现URL重写 </a> \r\n\r\n
这样的。
我用正则这样取id=多少,标题是什么,不知道为什么老是取不到标题?,帮看下下面那错了!! 谢了。
MatchCollection mc = Regex.Matches(Html, " <a\\s+href=\ "/Expert/TopicView2\\.asp\\?id=(? <urlid> [^\ "]*?)\ "[^> ]*?> (? <biaoti> [^ </]*?) ", RegexOptions.IgnoreCase);
foreach (Match m in mc)
{
Response.Write(m.Groups[ "urlid "].Value + " <br> ");
Response.Write(m.Groups[ "biaoti "].Value + " <br> ");
Response.Flush();
}
------解决方案--------------------看你的例子里是TopicView1,而正则里是TopicView2,所以我用了\d+
(? <biaoti> [^ <]*?)这里为非贪婪模式,它将尽可能少的匹配,如果后面没有普通文本字符,它将什么都不匹配,而加了 </a> 普通的文本字符之后,正则式首先要尽可能的匹配成功,然后才去考虑贪婪与非贪婪的匹配
或者按你这前的写法,去掉最后一个“?”,变为贪婪模式,也可以得到正确结果
------解决方案--------------------LS的已经给你解决了
抽空看看正则语法吧 练一练就明白了