Ejemplo n.º 1
0
        private List <ProvinceCodeModel> GetProvinceCodeModel(string txt)
        {
            List <ProvinceCodeModel> ProvinceCodeModelList = new List <ProvinceCodeModel>();  // ProvinceCodeModel();

            Regex eg = new Regex(@"<p class=""MsoNormal""><b><span lang=""EN-US"">([\s\S]+?)<span>&nbsp;&nbsp;&nbsp;&nbsp; </span></span></b><b><span style=""font-family: 宋体"">([\s\S]+?)</span></b></p>([\s\S]+?)(?=<p class=""MsoNormal""><b>)");
            //return eg.Match(redirctUrl).Groups[1].Value;
            var list = eg.Matches(txt);

            foreach (Match item in list)
            {
                ProvinceCodeModel proModel = new ProvinceCodeModel()
                {
                    Province = item.Groups[2].Value,
                    CityList = new List <CityCodeModel>()
                };

                string cityTxt = item.Groups[3].Value;
                Regex  egCity  = new Regex(@"<p class=""MsoNormal""><span style=""font-family: 宋体""> </span><span lang=""EN-US"">(.+?)<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style=""font-family: 宋体""> (.+?)</span></p>([\s\S]+?)(?=<p class=""MsoNormal""><span style=""font-family: 宋体""> </span><span lang=""EN-US"">(.+?)<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>|$)");

                var listCity = egCity.Matches(cityTxt);
                foreach (Match itemCity in listCity)
                {
                    CityCodeModel cityModel = new CityCodeModel()
                    {
                        CityName = itemCity.Groups[2].Value,
                        AreaList = new List <AreaCodeModel>()
                    };
                    string AreaTxt  = itemCity.Groups[3].Value;
                    Regex  egArea   = new Regex(@"<p class=""MsoNormal""><span style=""font-family: 宋体"">  </span><span lang=""EN-US"">([\s\S]+?)<span>&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style=""font-family: 宋体"">  ([\s\S]+?)</span></p>");
                    var    listArea = egArea.Matches(AreaTxt);
                    foreach (Match itemArea in listArea)
                    {
                        AreaCodeModel AreaModel = new AreaCodeModel()
                        {
                            AreaName = itemArea.Groups[2].Value
                        };
                        cityModel.AreaList.Add(AreaModel);
                    }

                    proModel.CityList.Add(cityModel);
                }

                ProvinceCodeModelList.Add(proModel);
            }

            return(ProvinceCodeModelList);
        }
Ejemplo n.º 2
0
        private string GetProvinceCodeModelJson(string txt)
        {
            Dictionary <string, object> cityAll = new Dictionary <string, object>();

            Regex eg = new Regex(@"<p class=""MsoNormal""><b><span lang=""EN-US"">([\s\S]+?)<span>&nbsp;&nbsp;&nbsp;&nbsp; </span></span></b><b><span style=""font-family: 宋体"">([\s\S]+?)</span></b></p>([\s\S]+?)(?=<p class=""MsoNormal""><b>)");
            //return eg.Match(redirctUrl).Groups[1].Value;
            var list = eg.Matches(txt);

            foreach (Match item in list) //处理省
            {
                var dic1 = new Dictionary <string, object>();
                cityAll.Add(item.Groups[2].Value, dic1);
                ProvinceCodeModel proModel = new ProvinceCodeModel()
                {
                    Province = item.Groups[2].Value,
                    CityList = new List <CityCodeModel>()
                };

                string cityTxt = item.Groups[3].Value; //省名

                Regex egCity = new Regex(@"<p class=""MsoNormal""><span style=""font-family: 宋体""> </span><span lang=""EN-US"">(.+?)<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style=""font-family: 宋体""> (.+?)</span></p>([\s\S]+?)(?=<p class=""MsoNormal""><span style=""font-family: 宋体""> </span><span lang=""EN-US"">(.+?)<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span>|$)");

                var listCity = egCity.Matches(cityTxt);
                foreach (Match itemCity in listCity)  //处理市
                {
                    var arr = new List <string>();
                    dic1.Add(itemCity.Groups[2].Value, arr);

                    string AreaTxt  = itemCity.Groups[3].Value;
                    Regex  egArea   = new Regex(@"<p class=""MsoNormal""><span style=""font-family: 宋体"">  </span><span lang=""EN-US"">([\s\S]+?)<span>&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style=""font-family: 宋体"">  ([\s\S]+?)</span></p>");
                    var    listArea = egArea.Matches(AreaTxt);
                    foreach (Match itemArea in listArea)  //处理市区
                    {
                        arr.Add(itemArea.Groups[2].Value);
                    }
                }
            }
            string json = JsonConvert.SerializeObject(cityAll);

            return(json);
        }