本帖最后由 _xixi_ 于 2014-7-6 22:46 编辑
我从前程无忧网查了一下职位信息的html代码,格式如下:
针对这个a标签获取职位信息的正则
(?<=exp)是获取exp后面的位置,(?=exp)是获取exp前面的位置,所以在这里 ([^<]+) 匹配到职位信息,前后两个断言都是为了匹配位置的。
- static void Main(string[] args)
- {
- //(?<=<a position' target='_blank'>)([^<]+)(?=</a>)
- //C#中 除 .$ ^ { [ ( | ) * + ? \ 外,其他字符与自身匹配,将上面的正则处理后如下
- //(?<=<a position' target='_blank'>)([^<]+)(?=</a>)
- string regex = "(?<=<a href='http:\//ac\\u002E51job\\u002Ecom/phpAD/adtrace\\u002Ephp\\u003FID=.+class='position' target='_blank'>)([^<]+)(?=</a>)";
- WebClient wc = new WebClient();
- wc.Encoding = Encoding.Default;
- string address = "http://www.51job.com/";
- string sourse = wc.DownloadString(address);
- MatchCollection mc = Regex.Matches(sourse, regex);
- int i = mc.Count;
- foreach (Match m in mc)
- {
- if (m.Success)
- {
- Console.WriteLine(m.ToString());
- }
- }
- Console.ReadKey();
- }
复制代码
为了技术分不容易,看了一晚,还是有问题不明白,关于转义的问题,如果加@,正则字符串要怎么写?
|
|