在js(nodejs)中我尝试捕获一个特定的单词,这个单词用重复的字母写...
例如,如果我说世界,我想抓住这个: 世界世界wwooorld世界文化世界
所以我可以通过这样的方式来创造一个动态的regexw:
var w = 'world';
var regex = '';
for(var i = 0; i < w.lengh; i++){
regex += `${w[i]}+`;
}
但我能用一个独特的正则表达式吗? (或其他原创想法)
答案 0 :(得分:2)
构建正则表达式的想法是正确的。但是,您需要注意在正则表达式中具有特殊含义的字符不会使问题出错。因此,您可以使用反斜杠转义非字母数字字符:
var w = "world+hello";
var regex = new RegExp('^' + w.replace(/\W/g, '\\$&+').replace(/\w/g, '$&+') + '$');
console.log(regex, regex.test('wwoooorllldd++++hhelllo'));
&#13;
答案 1 :(得分:1)
以下模式将匹配&#34; world&#34;
的任何字母重复组合"w+o+r+l+d+"
+
表示捕获前一个字符中的一个或多个。