求一个逗号的正则表达式

V-Far 2012-07-06 02:40:10
字符串如下:

7,11,1:2,"AAA,BBB,CCC",DDD

上面是一个字符串,现在想 匹配到
"AAA,BBB,CCC"中的逗号并替换成@(假设)
得到最后的字符串应该为:

7,11,1:2,"AAA@BBB@CCC",DDD


请教如何写这个正则表达式替换。各种语言都可以。。。
...全文
1348 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
2012-07-09
  • 打赏
  • 举报
回复

str = '7,11,1:2,"AAA,BBB,CCC,sfd",DDD'
str = str.replace(/"\w+(\,\w+)+"/g, function(v){return v.replace(/,/g, "@");});
IT_scamp 2012-07-09
  • 打赏
  • 举报
回复
3楼的代码应该能满足你的需求!
V-Far 2012-07-09
  • 打赏
  • 举报
回复
意思就是,可能这样:
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'
V-Far 2012-07-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

JScript code
var origin = '7,11,1:2,"AAA,BBB,CCC",DDD';
var after = origin.replace(/(\"\w+),(\w+),(\w+\")/, '$1@$2@$3');
[/Quote]
经过测试是可以用的。
可惜我描述不够清晰啊,
双引号之间的逗号不确定。我只需要把中间的逗号全都替换了
那一笑的凄凉 2012-07-06
  • 打赏
  • 举报
回复
var str = '7,11,1:2,"AAA,BBB,CCC",DDD';
var reg = /(\".*),(.*),(.*\")/gi;
var str = str.replace(reg, '$1@$2@$3');
alert(str);
hch126163 2012-07-06
  • 打赏
  • 举报
回复
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);
gf05011 2012-07-06
  • 打赏
  • 举报
回复
1楼的就可以
fox000002 2012-07-06
  • 打赏
  • 举报
回复
var origin = '7,11,1:2,"AAA,BBB,CCC",DDD';
var after = origin.replace(/(\"\w+),(\w+),(\w+\")/, '$1@$2@$3');

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧