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

智能推荐

如何写一个简单的解释器(Interpreter)-4_Runtime Error的博客-程序员宅基地

还记得Confucius说过什么吗?“我听说了,后来我忘记了”“我看到了,后来我记住了.”“我做过了,后来我理解了.”这一章我们讲讲多个乘数法的计算,注意除法是整数的除法,比如9除以4等于2。我还要使用一种新的表达方式,上下文无关的语法书(简称为语法书),或者叫BNF(Backus Naur样式),来表示一种编程语言的语句规则。多说一句,我用的是扩展的...

php xml解析方法_weixin_30698527的博客-程序员宅基地

XML处理是开发过程中经常遇到的,PHP对其也有很丰富的支持,本文只是对其中某几种解析技术做简要说明,包括:Xml parser, SimpleXML, XMLReader, DOMDocument。1。 XML Expat Parser:XML Parser使用Expat XML解析器。Expat是一种基于事件的解析器,它把XML文档视为一系列事件。当某个事件发生时,它调用一个指定的函数...

【vulnhub】---超级玛丽靶机_通地塔的博客-程序员宅基地

目录一、实验环境二、信息收集三、渗透测试  1、漏洞发现和利用  2、提权四、总结一、实验环境靶机:靶机(192.168.15.159)攻击机:kali Linux(192.168.15.129)二、信息收集主机发现命令:nmap -sn 192.168.15.0/24命令:netdiscover -i eth0 -r 192.168.15.0/24命令:arp-scan -l端口扫描命令:masscan --rate=10000 --ports 0-65535

rust语言服务器引擎,Rust 语言服务器 Alpha 版本发布_Lean Work的博客-程序员宅基地

Rust 语言服务器 Alpha 版本发布发布于 2017-01-18 15:48:08 | 138 次阅读 | 评论: 0 | 来源: 网友投递Rust 编程语言Rust是Mozilla开发的注重安全、性能和并发性的编程语言。创建这个新语言的目的是为了解决一个很顽疾的问题:软件的演进速度大大低于硬件的演进,软件在语言级别上无法真正利用多核计算带来的性能提升。Rust是针对多核体系提出的语言,并且...

React基础以及父子组件传参_一颗不变的少年心的博客-程序员宅基地

React是facebook推出的一款前端开发框架,只要针对view层进行操作的在React中所有的组件都可以看成是functionReact 组件使用一个名为render()的方法,接收输入的数据并返回需要展示的内容。在react中有些重要的概念:state,class。一、class定义组件组件需要继承在React.Component组件内部有一个render方...

随便推点

js计算时间差,天、时、分、秒_Mick_小马哥的博客-程序员宅基地

function getTimeDiff(_startTime, _endTime) { let startTime = new Date(_startTime.replace(/-/g, '/')); let endTime = new Date(_endTime.replace(/-/g, '/')); let diff = endTime.getTime() - startTime.g...

我为什么要学习法律?_weixin_30538029的博客-程序员宅基地

我为什么要学习法律? 穿过所有岁月的沧桑,我终不忘年少的初心。 我为什么要学习法律,思来想去,不为名、权、利,就为自己一天比一天活得潇洒一点点。 从小就是学渣,不是不喜欢学习,而是跟不上,跟不上老师的节奏,跟不上就会懒散,然后就开始怀疑人生,自己到底行不...

MinGW下构建Bullet_彩阳的博客-程序员宅基地

在Windows的MinGW下构建Bullet,采用其自带的premake4来进行。

java对象的强引用,软引用,弱引用和虚引用_Keycer的博客-程序员宅基地

众所周知,java中是JVM负责内存的分配和回收,这是它的优点(使用方便,程序不用再像使用c那样操心内存),但同时也是它的缺点(不够灵活)。为了解决内存操作不灵活这个问题,可以采用软引用等方法。      在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品

Python enumerate函数的用法_伊夫堡里的金鑫的博客-程序员宅基地

Python enumerate函数的用法在python里, enumerate函数将一个可以遍历的对象例如(list, set, string)里的每一个元素与他的索引index同时表示出来。alist = [1,2,3,4,5]for i, element in enumerate(alist): print (i, element)&lt;enumerate object at...

推荐文章

热门文章

相关标签