如何匹配定界符之间出现的文本,但不匹配定界符本身?

文本

DoNotFindMe('DoNotFindMe')
DoNotFindMe(FindMe)
DoNotFindMe(FindMe,FindMe)
DoNotFindMe(FindMe,FindMe,FindMe)


脚本

text = text.replace(/[\(,]([a-zA-Z]*)[,\)]/g, function(item) {
    return "'" + item + "'";
});


预期结果

DoNotFindMe('DoNotFindMe')
DoNotFindMe('FindMe')
DoNotFindMe('FindMe','FindMe')
DoNotFindMe('FindMe','FindMe','FindMe')


https://regex101.com/r/tB1nE2/1

最佳答案

这是一种非常简单的方法:

([a-zA-Z]+)(?=,|\))


这将查找由逗号或右括号后接的任何单词。



var s = "DoNotFindMe('DoNotFindMe')\nDoNotFindMe(FindMe)\nDoNotFindMe(FindMe,FindMe)\nDoNotFindMe(FindMe,FindMe,FindMe)";

var r = s.replace(/([a-zA-Z]+)(?=,|\))/g, "'$1'" );

alert(r);





使用与其他两个答案相同的测试代码;谢谢!

关于javascript - 正则表达式匹配逗号分隔列表中的单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27325450/

10-12 13:19