Javascript 使用正则表达式获取字符串

Javascript 使用正则表达式获取字符串,javascript,arrays,regex,Javascript,Arrays,Regex,我有这样一个命令:加上“第一道菜”,减去“第三道菜”,忽略“最后的力量”。 如何提取所有字符串以使其输出一个数组:[“第一项”、“第三项”、“最终权力”]var str='添加“第一项”并减去“第三项”,忽略“最终权力”; var res=str.match(/(?尝试使用与quote,text,quote匹配的正则表达式,然后使用map删除捕获的引号: const string='加上“第一道菜”减去“第三道菜”,忽略“最后一道菜”; 常量quotes=string.match(/\“(.*

我有这样一个命令:
加上“第一道菜”,减去“第三道菜”,忽略“最后的力量”。

如何提取所有字符串以使其输出一个数组:
[“第一项”、“第三项”、“最终权力”]

var str='添加“第一项”并减去“第三项”,忽略“最终权力”;

var res=str.match(/(?尝试使用与
quote
text
quote
匹配的正则表达式,然后使用
map
删除捕获的引号:

const string='加上“第一道菜”减去“第三道菜”,忽略“最后一道菜”;
常量quotes=string.match(/\“(.*?\”)/g.map(e=>e.split(\”)[1]);
console.log(引号);
您可以使用这个

“[^”]+?”-匹配
”,然后是除
(一个或多个时间延迟模式)之外的任何内容,然后是

let str=`加上“第一道菜”减去“第三道菜”,忽略“最后的力量”`
让op=str.match(/“[^”]+?”/g).map(e=>e.replace(/\”/g.))

log(op)
一种解决方案是使用这样的全局regexp,只需循环即可

var extractValues = function(string) {
    var regex = /"([^"]+)"/g;
    var ret = [];
    for (var result = regex.exec(string);
            result != null;
            result = regex.exec(string)) {
        ret.push(result[1]);
    }
    return ret;
}
extractValues('add "first item" and subtract "third course", disregard "the final power".')
但是,请注意,大多数答案(包括本答案)都没有涉及到值中可能包含引号这一事实。例如:

var str = 'This is "a \"quoted string\""';

如果你的数据集中有这个,你需要调整一些答案。

你尝试过什么?使用一个匹配双引号、一系列非双引号字符和另一个双引号的正则表达式。
str.split(/[\w\s,]+(\s|,)“|/).filter(w=>w&&w.trim())
有趣而棘手的问题:)请在下面找到可能是您问题答案的解决方案。可能是
var str = 'This is "a \"quoted string\""';