首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

问一个正则有关问题

2011-12-31 
问一个正则问题Reader为HTML代码,HT为哈希表,里面存的是href http://XXX.XXXX.com/XXX/(.*?) divname

问一个正则问题
Reader为HTML代码,HT为哈希表,里面存的是
href= "http://XXX.XXXX.com/XXX/(.*?) "> <div   name= "clientName "> <div     id=items   name=items   >

Regex   RRestID   =   new   Regex(HT[ "BeiJing_PageRestId "].ToString(),   RegexOptions.IgnoreCase   |   RegexOptions.Compiled);
Regex   RRestName   =   new   Regex(HT[ "BeiJing_PageRestName "].ToString(),   RegexOptions.IgnoreCase   |   RegexOptions.Compiled);
Regex   RRestUrl   =   new   Regex(HT[ "BeiJing_PageRestUrl "].ToString(),   RegexOptions.IgnoreCase   |   RegexOptions.Compiled);
            MatchCollection   MRestID   =   RRestID.Matches(Reader);
            MatchCollection   MRestName   =   RRestName.Matches(Reader);
            MatchCollection   MRestUrl   =   RRestUrl.Matches(Reader);

这样抓出来的数据可以得到MRestID.Count=10,但里面取出的数据是
href= "http://XXX.XXXX.com/XXX/XXXX "> <div   name= "clientName "> <div     id=items   name=items   >
这样的数据,并不是XXX/后面我要的数据,请问如何修改

[解决办法]
-_-#,看了半天还是云里雾里的,为什么会这样用啊

你这样取出来的是一个集合
MatchCollection MRestID = RRestID.Matches(Reader);
集合中的元素肯定是
href= "http://XXX.XXXX.com/XXX/XXXX "> <div name= "clientName "> <div id=items name=items >
这样的,要得到XXX/后面的数据,这样

foreach (Match m in MRestID)
{
richTextBox2.Text += m.Groups[1].Value + "\n ";
}


搞不懂为什么要这样写正则,另外就是如果不是极其频繁的调用,不要加RegexOptions.Compiled这个参数,否则会适得其反

热点排行