$.api.auth({    method: 'list.get',    key: '0',    module: '0001',    page: '1',    pagesize: '10',    type: 'hd'}, function (data) {alert(data);});

$.api.auth({    method: 'init.get',    module: '0010',    moduletype: 'hd'}, function (data) {var json = data;});

$("#demoID").click(function () { $.api.auth({    method: 'load.get',    module: '012',    moduletype: 'hd'}, function (data) {var json = data;}); });
我想得到一下这样的结果(当然我用数据方式表达而已):
List[0][0] = "";
List[0][1] = method: 'list.get',key: '0',module: '0001',page: '1',pagesize: '10',type: 'hd'
List[0][2] = alert(data);List[1][0] = "";
List[1][1] = method: 'init.get',    module: '0010',    moduletype: 'hd'
List[1][2] = var json = data;List[2][0] = "demoID";
List[2][1] = method: 'load.get',    module: '012',    moduletype: 'hd'
List[2][2] = var json = data;求郑则表达怎么写

解决方案 »

  1.   

    (?i)\$(\((['"])([^\2]+)\2\))?.*?{([^}]+)},\s*function.*?{([^}]+)}分别取Groups[3]  Groups[4]  Groups[5] 的值
      

  2.   

    void Main()
    {
    string str=@"$.api.auth({    method: 'list.get',    key: '0',    module: '0001',    page: '1',    pagesize: '10',    type: 'hd'}, function (data) {alert(data);});
     
    $.api.auth({    method: 'init.get',    module: '0010',    moduletype: 'hd'}, function (data) {var json = data;});
     
    $(""#demoID"").click(function () { $.api.auth({    method: 'load.get',    module: '012',    moduletype: 'hd'}, function (data) {var json = data;}); });";  Regex reg=new Regex(@"(?i)\$(\((['""])([^\2]+)\2\))?.*?{([^}]+)},\s*function.*?{([^}]+)}");
      foreach(Match m in reg.Matches(str))
      {
         Console.WriteLine(m.Groups["3"].Value==""?"NULL":m.Groups[3].Value);
     Console.WriteLine(m.Groups["4"].Value);
     Console.WriteLine(m.Groups["5"].Value);
      Console.WriteLine("=======================");
      }
    }
      

  3.   

    还有一个问题,估计之前没考虑到: function (data) {var json = data;});如果回调函数里没有值 function (data) { });这样就匹配不到值了,请问怎么改
      

  4.   


    (?i)\$(\((['"])([^\2]+)\2\))?.*?{([^}]+)},\s*function.*?{([^}]*?)}
      

  5.   


    (?i)\$(\((['"])([^\2]+)\2\))?.*?{([^}]+)},\s*function.*?{([^}]*?)}$.api.auth({    method: 'bcp.list.get',    key: 'id',    module: '0026',    page: '1',    pagesize: '1',    type: 'hd'}, function (data) {alert(data);for (var i = 0; i < data.item.length) {};});
    版主还有一点点小瑕疵,如果写javascript语句里,以};结尾,那么就有可能发生错误。
    最后解析的第五段会是
    alert(data);
    for (var i = 0; i < data.item.length) {正常应该是alert(data);
    for (var i = 0; i < data.item.length) {
    };