C#Regular Expression获取数据

时间:2015-02-05 05:44:29

标签: c#

大家好我想用正则表达式从这个文件获取数据json,这个数据来自web路由器

//
nvram = {
	'wan_domain': '',
	'wan_gateway': '10.10.1.1',
	'wan_gateway_get': '125.162.136.1',
	'wan_get_domain': '',
	'wan_hostname': 'Gatsu-Router',
	'wan_hwaddr': '50:46:5D:00:C8:89',
	'wan_ipaddr': '125.162.138.160',
	'wan_netmask': '255.255.255.255',
	'wan_proto': 'pppoe',
	'wan_run_mtu': '1492',
	'web_pb': ''};

//
   
wlstats = [ { radio: 1, client: 0, channel:  3, mhz: 2422, rate: 144, ctrlsb: 'none', nbw: 20, rssi: 0, noise: -86, intf: 0 }
,{ radio: 1, client: 0, channel:  149, mhz: 5745, rate: 900, ctrlsb: 'lower', nbw: 40, rssi: 0, noise: -99, intf: 0 }
];

所以请输入此数据

nvram = {
	'wan_domain': '',
	'wan_gateway': '10.10.1.1',
	'wan_gateway_get': '125.162.136.1',
	'wan_get_domain': '',
	'wan_hostname': 'Gatsu-Router',
	'wan_hwaddr': '50:46:5D:00:C8:89',
	'wan_ipaddr': '125.162.138.160',
	'wan_netmask': '255.255.255.255',
	'wan_proto': 'pppoe',
	'wan_run_mtu': '1492',
	'web_pb': ''};

1 个答案:

答案 0 :(得分:1)

您可以使用Json.NET来解析路由器中的数据。这比使用正则表达式更容易。

根据shree.pat18评论,这是一个小工作示例如何使用它:

TestJson.cs:

using Newtonsoft.Json;

namespace TestConsole.TestClasses {

    class RouterInfo {

    [JsonProperty(PropertyName = "wan_gateway")]
    public string Gateway { get; set; }

    [JsonProperty(PropertyName = "wan_run_mtu")]
    public int Mtu { get; set; }

    // add here other fields

}

class JsonTest {

    public void Test() {
        string routerData = @"{
'wan_domain': '',
'wan_gateway': '10.10.1.1',
'wan_gateway_get': '125.162.136.1',
'wan_get_domain': '',
'wan_hostname': 'Gatsu-Router',
'wan_hwaddr': '50:46:5D:00:C8:89',
'wan_ipaddr': '125.162.138.160',
'wan_netmask': '255.255.255.255',
'wan_proto': 'pppoe',
'wan_run_mtu': '1492',
'web_pb': ''}";
        RouterInfo info = JsonConvert.DeserializeObject<RouterInfo>(routerData);
        // here you can work with RouterInfo "info" object
    }
}
}

您应该将Json.NET库添加到您的项目中,然后使用NuGet。