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