C#解析ip.ws.126.net的IP查询地区接口数据(使用正则表达式匹配获取所需数据)_幕尘枫的博客-程序员宅基地

技术标签: C#  

1、先看一下接口地址:

http://ip.ws.126.net/ipquery?ip=106.120.159.68

返回的数据如下:

var lo="北京市", lc="北京市"; var localAddress={city:"北京市", province:"北京市"}

2、使用正则表达式进行匹配,获取省份和城市

string url = "http://ip.ws.126.net/ipquery?ip=106.120.159.68";
string result="";
WebRequest wrt = null;
WebResponse wrp = null;
try
{
    wrt = WebRequest.Create(url);
    wrt.Credentials = CredentialCache.DefaultCredentials;
    wrp = wrt.GetResponse();
    StreamReader sr = new StreamReader(wrp.GetResponseStream(), Encoding.Default);
    string html = sr.ReadToEnd();
    string pattern = "{city:\"(?<key1>.*?)\", province:\"(?<key2>.*?)\"}";
    Regex regex = new Regex(pattern, RegexOptions.None);
    Match match = regex.Match(html);
    //城市
    string city= match.Groups["key1"].Value;
    //省份
    string province=match.Groups["key2"].Value;
}
catch (Exception){}
finally
{
if (wrp != null)
    wrp.Close();
if (wrt != null)
    wrt.Abort();
}

正则表达式的写法:

1、需要匹配获取的内容,使用(?<key>.*?)代替,其中key为键。

2、双引号要用转义斜杠。

使用正则前:{city:"北京市", province:"北京市"}

使用正则后:{city:\"(?<key1>.*?)\", province:\"(?<key2>.*?)\"}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq15577969/article/details/108682640

智能推荐

icinga和check_mk用户管理_左手程序右手拳的博客-程序员宅基地

check_mk用户管理参考文档:http://mathias-kettner.com/checkmk_multisite_auth.html但是请注意,文档中没有提到icinga,一直都在假定用户是nagiosadmin所以必须要在apache2的密码文件中再创建一个用户nagiosadmin用命令:htpasswd /usr/local/icinga/etc/htpasswd.users na

Unity3D Terrain_aa20274270的博客-程序员宅基地

1. 如何获得Terrain 的 Blend Texture,(splatAlpha Texture) TerrainData terrainData = (TerrainData)selObjs[i];Texture2D[] splatAlphaTex = terrainData.alphamapTextures;        for (int index = 0; ind

android compile tasks中dex过程源码情景分析_natureXin的博客-程序员宅基地

0x00 前言MultiDex中出现的main dex capacity exceeded解决之道中我们知道main dex的class可以由maindexlist.txt指定,Android MultiDex机制杂谈中我们分析了google MultiDex机制中Secondary dex的install过程,那么,我们的app在android gradle build过程中,.

360儿童手表双十一最新战报:30分钟销量破7万台!_weixin_34418883的博客-程序员宅基地

在刚刚开始的京东双十一全球狂欢节,360传来了战报,仅10分钟,360儿童手表全网销量突破3万台,就在笔者编辑新闻期间,最新数据显示,360儿童手表前30分钟销量,已经突破7万台。图1:360儿童手表获全网销量冠军360儿童手表自发布以来,凭借其强大的功能以及出色的体验,受到了消费者的广泛好评。360儿童手表既满足家长时刻关注孩子安全动态的需求,又完成作为孩子贴心伙伴的陪伴功能,成为双十一购物热潮...

Hadoop集群群起脚本(zookeeper、Hadoop、HBase)_文艺小卿年的博客-程序员宅基地

学习HBASE的时候,因为需要启动zookeeper和Hadoop,需要很多命令才能全部启动,关闭时也比较麻烦。所以就自己写了群起脚本和关闭脚本(/root/bin目录下,也可根据自己实际情况选择目录),记录一下。群起脚本startcluster.sh#!/bin/bashfor i in master slave1 slave2do echo &quot;=====$i====...

李代数(第2版)_iteye_11916的博客-程序员宅基地

《李代数(第2版)》基本信息作者: 万哲先丛书名: 现代数学基础系列出版社:高等教育出版社ISBN:9787040372663上架时间:2013-7-3出版日期:2013 年6月开本:16开页码:278版次:2-1所属分类:数学 &amp;gt; 代数,数论及组合理论 &amp;gt; 综合更多关于 》》》《李代数(第2版) 》内容简介数学书籍  ...

随便推点

java代码挡板接球_js视频教程(对象)第5天09_挡板球小游戏上集.mp4_知惠酱的博客-程序员宅基地

本js视频教程详细课程目录如下:├─1.JS进阶视频教程-特效 3天课程│ ├─第1天│ │ JavaScript特效视频教学第1天01_早上考试向上滚动的间歇动画.mp4│ │ JavaScript特效视频教学第1天02_拼图轮播的原理.mp4│ │ JavaScript特效视频教学第1天03_拼图轮播的实现.mp4│ │ JavaScript特...

HashMap的储存过程_milestoneO的博客-程序员宅基地

HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入...

阿迪达斯2020年第三季度实现强劲复苏,收入59.64亿欧元_美通社的博客-程序员宅基地

2020年第三季度业绩摘要:-第三季度,公司收入及利润水平与去年同期相近-剔除汇率因素,公司收入下降3%。这是由于公司着力于恢复健康的库存水平、销售盈利,以及对经销商供货的严格管理-电商...

C++ 中string.find() 函数的用法总结(转载)_lineCode的博客-程序员宅基地

#include #include using namespace std;void main(){[cpp] view plaincopy ////find函数返回类型 size_type  string s("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");  string flag

oracle11g 隐藏参数_ORACLE隐藏参数查看及修改的方法_weixin_39992831的博客-程序员宅基地

查看隐藏参数SELECT x.ksppinm name,y.ksppstvl value,y.ksppstdf isdefault,decode(bitand(y.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE') ismod,decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE') isadjFROMsys.x$ks...

推荐文章

热门文章

相关标签