Javascript 在“之间获取多个子字符串”;或';

Javascript 在“之间获取多个子字符串”;或';,javascript,Javascript,当子字符串位于“(单引号)或“(双引号)之间时,我试图找出如何获取子字符串 例如: 输入:“快速”棕色“狐狸”跳过“懒狗” 输出:['quick','fox','jumps','lazy dog'] 我试过用正则表达式来做这个,但失败了 const string = "The "quick" brown "fox" 'jumps' over the 'lazy dog'" const pattern = /(?:'([^']*

当子字符串位于“(单引号)或“(双引号)之间时,我试图找出如何获取子字符串

例如:

输入:“快速”棕色“狐狸”跳过“懒狗”

输出:['quick','fox','jumps','lazy dog']

我试过用正则表达式来做这个,但失败了

const string = "The "quick" brown "fox" 'jumps' over the 'lazy dog'"     
const pattern = /(?:'([^']*)')|(?:"([^"]*)")/;
console.log(strippedText.match(pattern));

但它只返回第一个单引号或双引号单词。

在模式中最后一个
/
之后使用全局标志
g
,并将函数从
match
更改为
matchAll
。因此:
模式=/(?:'([^']*)|((?:“([^']*)”)”)/g。这将返回一个数组数组,因此需要对其进行处理,以获得所需的普通数组

const string=`The“quick”brown“fox”跳过“lazy dog”`;//使用反勾号,因为我们使用“and”
常量模式=/(?:'([^']*))|(?:“([^”]*)”)/g;//模式的末尾有全局标志“g”,因此它允许多个匹配
const matches=[…string.matchAll(pattern)]//使用扩展运算符“…”将RegExpStringIterator转换为数组
.map(([\ux,first,second])=>first??second);//将数组数组转换为合理的数组。

console.log(匹配项)在模式中最后一个
/
之后使用全局标志
g
,并将函数从
match
更改为
matchAll
。所以:
pattern=/(?:'([^']*))|(?:“([^”]*)”)/g、 
。这将返回一个数组数组,因此您需要对其进行处理,以获得所需的普通数组。@Samathingamajig谢谢,我知道这是我忽略的一件简单的事情。@Samathingamajig请将其放入答案中,Ardz请接受。这将帮助其他人找到答案。@Tom好的,我已经发布了一个答案&s但是,修复嵌套数组和删除额外引号需要额外的处理