需要匹配重复的单词并使用正则表达式将其替换为新单词

Need to match the repeated words and replace it with a new one using regex

我试图匹配 linux、

中下一行的模式
$(menu_no),ini_question3.vox,inv_question3.vox,inv_question3.vox,ini_question3.vox,to_question3.vox

我需要从上面的行中找到重复的单词并将重复的单词替换为其他单词,

例:这里重复的词是 inv_question3.vox,inv_question3.vox 我需要将其更改为 inv_question3.vox,end.vox

我尝试使用以下命令在 vim 编辑器中进行查找和替换,但没有成功,

:s/\(inv_question*.vox\),\(inv_question*.vox\)/,end.vox/g

我不确定你要替换什么,但是如果你想匹配重复的字符串inv_question3.vox,你可以尝试:

let string = '$(menu_no),ini_question3.vox,inv_question3.vox,inv_question3.vox,ini_question3.vox,to_question3.vox';

let result = string.replace(/(inv_question\d\.vox\,){2,}/, ',end.vox,');

console.log(result)

  • \d:只有1个号码。
  • {2,}: 2次或更多次

然后,用</code>替换<code>,end.vox,就是inv_question3.vox