C#解析ip.ws.126.net的IP查询地区接口数据(使用正则表达式匹配获取所需数据)

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>.*?)\"}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值