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\""';