有字符串abc"xxx","yyy"def,用javascript正则如何获取xxx和yyy?   
不能带有引号"。
我自己写了一个:
const reg = /\"(.*?)\"/;
reg.exec (abc"xxx","yyy"def);//只能获取第一个xxx
如果去掉正则表达式中的?,则获取xxx","yyy
请问这个正则表达式该如何写?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
因为js不支持先行断言
(?<="),所以不好一次性获取成功。那就写个方法,解决问题。不会获取中间的逗号和两边的引号:来个文档
https://developer.mozilla.org...使用插入语
感觉这样可以哈。
目前大多数的回答 获得的都是带引号的,而题主说的是不带引号啊
把所有的回答在console里运行了一遍,@MollyM 答案可行。
效果如下:

把你写的加个
g就行了,没有g的情况下每次搜索都会从头开始,有g的时候正则对象会记录lastIndex属性,从这里往后匹配。你自己写得就可以。
一楼的答案很棒,不过我有个小建议,就是别用两次正则,毕竟正则相对于原生函数还是比较耗资源的,
'abc"xxx","yyy"def'.match(/"w+"/gi).join('').split('"').join('')
这样就OK了,一行完事!
var aa='abc"xxx","yyy"def'
var bb=aa.replace(/([w ,])+?"(.?)"(w)/g,"$2,").match(/w{3}/g)
?表示懒惰匹配,去掉使用默认的贪婪匹配,你的问题在于是否全局搜索