求正则表达式高手!80分全给!
用C#正则表达式解析一个json字符串,如下:private void TestRegex()
{
string a = "{\"workArea\":\"福建省,泉州市,石狮市,湖滨\",\"address\":\"福建省石狮市南洋路服装城物流中心2-3号\"}";//json字符串
MatchCollection mc = Regex.Matches(a, @"""(?<key>[^""]+)"":(?<value>[^,}]+)");//正则解析
Response.Write(mc[0].Groups["value"].Value + "<br/>");//输出的结果是"福建省,没有正常全部解析出来
Response.Write(mc[1].Groups["value"].Value + "<br/>"); //输出的结果是“福建省石狮市南洋路服装城物流中心2-3号”,有正常全部解析出来
}
可能是解析的正则表达式不正确,无法满足要求(遇到有逗号(,)的值只能解析逗号前,逗号后面的值没有解析出来,求正确的解析正则表达式,80分立马全送! --------------------编程问答-------------------- string a = "{\"workArea\":\"福建省,泉州市,石狮市,湖滨\",\"address\":\"福建省石狮市南洋路服装城物流中心2-3号\"}";//json字符串
先用Split(',')把它易做图成数组 在进行解析不就可以了吗 --------------------编程问答-------------------- 你要获取什么 --------------------编程问答--------------------
string a = "{\"workArea\":\"福建省,泉州市,石狮市,湖滨\",\"address\":\"福建省石狮市南洋路服装城物流中心2-3号\"}";//json字符串--------------------编程问答-------------------- if(/^("(\\.|[^\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(s)){}
Regex reg = new Regex(@"""[^""]+"":""(.*?)""(?=[,}])");
foreach (Match m in reg.Matches(a))
Console.WriteLine(m.Groups[1].Value);
http://topic.csdn.net/u/20091009/11/a2abb54f-b15c-4db2-b051-ef5baa396b0d.html
希望对你有帮助。 --------------------编程问答-------------------- "(?<key>[^"]+)":"(?<value>[^}"]+)"
你正则表达式错了,试试上面这个。 --------------------编程问答-------------------- 你前面有排除双引号,为什么后半段就不排除了?
按你的意思是在取双引号里的内容,那么还要在后半段外围加上一对双引号。 --------------------编程问答--------------------
string a = @"{""workArea"":""福建省,泉州市,石狮市,湖滨"",""address"":""福建省石狮市南洋路服装城物流中心2-3号""}";//json字符串
MatchCollection matches = Regex.Matches(a, @"""\w+"":""(?<value>[^""]+)""");
foreach (Match match in matches)
Response.Write(match.Groups[1].Value + "<br/>");
补充:.NET技术 , ASP.NET