簡體   English   中英

正則表達式匹配字母不在單引號內

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM