字符串如下:7,11,1:2,"AAA,BBB,CCC",DDD上面是一个字符串,现在想 匹配到
"AAA,BBB,CCC"中的逗号并替换成@(假设)
得到最后的字符串应该为:7,11,1:2,"AAA@BBB@CCC",DDD
请教如何写这个正则表达式替换。各种语言都可以

解决方案 »

  1.   

    var origin = '7,11,1:2,"AAA,BBB,CCC",DDD';
    var after = origin.replace(/(\"\w+),(\w+),(\w+\")/, '$1@$2@$3');
      

  2.   

    var str="7,11,1:2,\"AAA,BBB,CCC\",DDD,\"EEE,FFF,GGG\"HHHH";
    var m = str.match(/"([^\"]+?)"/ig);for(var i=0;i<m.length;i++){
    str = str.replace(m[i],m[i].replace(/,/ig,"@"));
    }
    alert(str);
      

  3.   

     var str = '7,11,1:2,"AAA,BBB,CCC",DDD';
     var reg = /(\".*),(.*),(.*\")/gi;
     var str = str.replace(reg, '$1@$2@$3');
     alert(str);
      

  4.   

    意思就是,可能这样:
    7,11,1:2,"AAA,BBB,CCC",DDD
    可能这样
    7,11,1:2,"AAA,BBB,",DDD'
    可能这样
    7,11,1:2,"AAA,BBB,CCC,adfa",DDD'
    也可能这样
    7,11,1:2,"AAA,BBB,CCC,asdfasdfa(忽略N个重复逗号)",DDD'
      

  5.   


    str = '7,11,1:2,"AAA,BBB,CCC,sfd",DDD'
    str = str.replace(/"\w+(\,\w+)+"/g, function(v){return v.replace(/,/g, "@");});