在字符串m,它的值为string m = "[{'name': 'id', 'label': '序号', 'key': true, 'width': 200, 'align': 'left' },"
 + "{ 'name': 'code', 'label': '单号', 'width': 200, 'align': 'left', 'editable': true },"
 + "{ 'name': 'no', 'label': '单别', 'width': 200, 'align': 'left', 'editable': true },"
 + "{ 'name': 'spec', 'label': '规格', 'width': 200, 'align': 'left', 'editable': true },"
 + "{ 'name': 'confirm', 'label': '审核否', 'width': 60, 'align': 'left', 'editable': true, 'stype': 'select', 'edittype': 'select', 'formatter':'select', 'editoptions': { 'value': '1:是;0:否' } },"
 + "{ 'name': 'dt1', 'label': '日期1', 'width': 80, 'align': 'left', 'editable': true },"
 + "{ 'name': 'dt2', 'label': '日期2', 'width': 80, 'align': 'left', 'editable': true,'editrules': { 'date': true } }"
 + "]";
现在想通过正则表达式将这个m转换成这样一个字符串
id,code,no,spec,confirm,dt1,dt2

解决方案 »

  1.   

    Newtonsoft.Json.dll,解析json串吧
      

  2.   

    Regex r = new Regex("'name': '(.*?)',");
                MatchCollection mc = r.Matches(m);
                for (int i = 0; i < mc.Count; i++)
                {
                    Console.WriteLine(mc[i].Value.Substring(9).Replace("',",""));
                }
      

  3.   


    <script>
            var m = "[{'name': 'id', 'label': '序号', 'key': true, 'width': 200, 'align': 'left' },"
     + "{ 'name': 'code', 'label': '单号', 'width': 200, 'align': 'left', 'editable': true },"
     + "{ 'name': 'no', 'label': '单别', 'width': 200, 'align': 'left', 'editable': true },"
     + "{ 'name': 'spec', 'label': '规格', 'width': 200, 'align': 'left', 'editable': true },"
     + "{ 'name': 'confirm', 'label': '审核否', 'width': 60, 'align': 'left', 'editable': true, 'stype': 'select', 'edittype': 'select', 'formatter':'select', 'editoptions': { 'value': '1:是;0:否' } },"
     + "{ 'name': 'dt1', 'label': '日期1', 'width': 80, 'align': 'left', 'editable': true },"
     + "{ 'name': 'dt2', 'label': '日期2', 'width': 80, 'align': 'left', 'editable': true,'editrules': { 'date': true } }"
     + "]";
            var jsonArr = eval(m),i,s='';
            for (i in jsonArr) {
                s += jsonArr[i]["name"] + ",";
            }
            alert(s);
        </script>这个用json不好吗
      

  4.   

    string result = string.Join(",",Regex.Matches(m,@"(?i)(['""]?)name\1:\s*?(['""]?)([^'""\s]+)\2").OfType<Match>().Select(a=>a.Groups[3].Value));
                    //id,code,no,spec,confirm,dt1,dt2