如何匹配定界符之间出现的文本,但不匹配定界符本身?
文本
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/