[英]Regex match letters not inside single quote
我需要匹配字符串中的所有字符和数字(\\ w),而不是单引号(\\')内的字符串
例如我有字符串:
param : 'test' .param4 'zzzz' param8 * 'rrrr'
从该字符串,我需要得到:
- param
- param4
- param8
谢谢。
您可以使用以下基于前瞻的正则表达式:
/(?=(?:(?:[^']*'){2})*[^']*$)\b\w+\b/gm
如果该单词在单引号之外,则该正则表达式将与该单词匹配,方法是使用超前查询来确保每个单词后的引号数量为偶数。 这假定未转义的引号是平衡的。
码:
var re = /(?=(?:(?:[^']*'){2})*[^']*$)\b\w+\b/gm;
var str = 'param : \'test\' .param4 \'zzzz\' param8 * \'rrrr\' class2.class3*dsaasd';
var m;
var result;
while ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex)
re.lastIndex++;
res.push(m[0]);
}
console.log(result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.