正则表达式匹配:根据key获取value
需求
url请求html字符串,dytk值写在js里,可以看成是key-value的格式,需要提取dytk值。
解决方法
正则匹配
private string get_dytk(string html) { //string temp = "dytk: '(.*?)\\'"; string key = "dytk"; //C#正则的声明,注:C#转义为双反斜杠\\ //?'val'是给[^\\]]*匹配到的结果起别名,后面可以利用m.Groups["别名"].Value来获取匹配到的值。?''是起别名的方式 这里别名起为 val //需要重视的是:分组Groups必须在正则表达式上加括号 (),如上面的 : [ ^\] ]* 必须要加括号---> : ( [ ^\] ]*)这样分号后面的才能以组的形势访问。 Regex reg = new Regex(key + "\\s*:\\s*\'(?'val'[^\"]*)\'", RegexOptions.IgnoreCase); Match m = reg.Match(html); if (m.Success) { return m.Groups["val"].Value; } else { return string.Empty; } }
参考:
学习,以记之。如有错漏,欢迎指正
作者:冯子武
出处:http://www.cnblogs.com/Zev_Fung/
本文版权归作者和博客园所有,欢迎转载,转载请标明出处。
如果博文对您有所收获,请点击下方的 [推荐],谢谢