读书人

问一个正则有关问题

发布时间: 2011-12-31 23:50:30 作者: rapoo

问一个正则问题
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这个参数,否则会适得其反

读书人网 >asp.net

热点推荐