none
正则表达式检索字符串

    问题

  • 请问如何使用正则表达式从下列字符串中提取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

    2016年3月25日 5:55

答案

  • 您好,

    看起來蠻像 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"]);


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已标记为答案 Allen PPL 2016年3月25日 8:40
    2016年3月25日 7:45

全部回复

  • 您好,

    看起來蠻像 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"]);


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已标记为答案 Allen PPL 2016年3月25日 8:40
    2016年3月25日 7:45
  • 谢谢 �亂馬客�

    这个确实JSON的返回结果。

    我去找那个Newtonsoft.Json了,谢谢。


    Allen PPL

    2016年3月25日 8:40