积极答复者
正则表达式检索字符串

-
请问如何使用正则表达式从下列字符串中提取value2和value4,水平有限,请高手指点,谢谢。
字符串实例:
字符串中的value都是数值(0-9)
response="key1":"value1","key2":"value2","key3":"value3","key4":"value4","key5":"value5";
说下我自己的解决办法,因为这个是用逗号隔开的值对,值对使用冒号隔开的,我曾使用
string[] result = response.Replace ("\"","").Split(new char[]{','});
string value4 = result[3].Split(new char[] { ':' })[1];这个貌似很不效率而且无法适用更多值对(数量变化)的情况,我自己写的正则表达式
string pattern = "^\"key4\":\"[0-9]+\"$";
Regex regex = new Regex(pattern);
string price=regex.Match(response ).Value;但是取不到值,请问正则表达式应该怎么写?还有是不是可以一次性的就能取到value2和value4,谢谢!
Allen PPL
问题
答案
-
您好,
看起來蠻像 JSON 的,
也可以用 JSON 來轉成物件,如下,
string response = @"'key1':'value1','key2':'value2','key3':'value3','key4':'value4','key5':'value5'"; //加入 Newtonsoft.Json 參考 JObject resp = JObject.Parse( "{" + response + "}"); Console.WriteLine(resp["key2"]); Console.WriteLine(resp["key4"]);
- 已标记为答案 Allen PPL 2016年3月25日 8:40
全部回复
-
您好,
看起來蠻像 JSON 的,
也可以用 JSON 來轉成物件,如下,
string response = @"'key1':'value1','key2':'value2','key3':'value3','key4':'value4','key5':'value5'"; //加入 Newtonsoft.Json 參考 JObject resp = JObject.Parse( "{" + response + "}"); Console.WriteLine(resp["key2"]); Console.WriteLine(resp["key4"]);
- 已标记为答案 Allen PPL 2016年3月25日 8:40