Javascript Regex获取所有引用的单词,这些单词不是单引号

Javascript Regex获取所有引用的单词,这些单词不是单引号,javascript,regex,Javascript,Regex,是否可以用一个正则表达式获取所有引用的文本 来自regexr的示例文本: 编辑“表达式”和文本以查看匹配项。滚动“匹配项”或表达式以了解详细信息。 用ctrl-z键撤消错误。 与朋友或社区保存“收藏夹和共享”表达式。使用工具“探索”您的结果。图书馆提供了完整的参考和帮助,或观看视频教程 在本例中,我希望捕获表达式,匹配和探索,但不捕获共享,因为“收藏夹和共享”表达式是单引号引用的。您不能构建只匹配Javascript中所需部分的正则表达式,但是,您可以构建一个匹配所有字符串的模式,而不留间隙,并

是否可以用一个正则表达式获取所有引用的文本

来自regexr的示例文本:

编辑“表达式”和文本以查看匹配项。滚动“匹配项”或表达式以了解详细信息。 用ctrl-z键撤消错误。 与朋友或社区保存“收藏夹和共享”表达式。使用工具“探索”您的结果。图书馆提供了完整的参考和帮助,或观看视频教程


在本例中,我希望捕获
表达式
匹配
探索
,但不捕获
共享
,因为
“收藏夹和共享”表达式
是单引号引用的。

您不能构建只匹配Javascript中所需部分的正则表达式,但是,您可以构建一个匹配所有字符串的模式,而不留间隙,并使用捕获组提取所需的零件:

/[^"']*(?:'[^']*'[^"']*)*"([^"]*)"/g
#^----------------------^ all that isn't content between double quotes
由于字符串的结尾可能类似于
bao'efgh“ijkl”mnop“qrst
(简而言之,没有需要的部分,但在单引号子字符串中有一个双引号部分),因此将模式更改为:

/[^"']*(?:'[^']*(?:'[^"']*|$))*(?:"([^"]*)"|$)/g

并放弃最后一个匹配。

无特殊正则表达式模式:

var mystr = "Edit the \"Expression\" & Text to see matches. Roll over \"matches\" or the expression for details. Undo mistakes with ctrl-z. Save 'Favorites & \"Share\" expressions' with friends or the Community. \"Explore\" your results with Tools. A full Reference & Help is available in the Library, or watch the video Tutorial."
var myarr = mystr.split(/\"/g)
var opening=false;
for(var i=1; i<myarr.length;i=i+2){
    if((myarr[i-1].length-myarr[i-1].replace(/'/g,"").length)%2===1){opening=!opening;}
    if(!opening){console.log(myarr[1]);}
}
var mystr=“编辑\“表达式\”文本以查看匹配项。滚动\“匹配项\”或表达式以了解详细信息。使用ctrl-z撤消错误。与朋友或社区保存“收藏夹和共享\“表达式”。“使用工具探索\”您的结果。库中提供完整的参考和帮助,或观看视频教程。”
var myarr=mystr.split(/\“/g)
var期初=假;

对于(var i=1;i
“Explore”
“Explore”
“Explore”“Explore”“Explore”“Explore”“Explore”“Explore”“Explore”“Explore”?“Explorer”“Explore”?“Explore”“Explore”他需要向前看,向后看,没有“wrappers@MaciejKoziejaIs”,报价有任何平衡“quote end”我从执行此命令中得到以下结果:[“编辑”表达式“,“表达式”]@Xeul:您需要提取捕获组1,为此您必须使用
RegExp.prototype.exec
而不是
String.prototype.match
。您可以在这里看到如何使用它:是的,我正在做/[^']*(?:“[^']*”[^']*”[^']*”)*([^']*)*)/g、 exec(content)@Xeul:捕获组1是数组中的第二项。请再次仔细阅读文档,了解
RegExp.prototype.exec
如何工作以及如何将其用于多个匹配。请参见示例。那么此解决方案仅捕获第一个引用的文本?