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

时间:2016-10-19 10:21:14

标签: regex replace repeat

我试图匹配linux中以下行的模式,

$(menu_no),ini_question3.vox,inv_question3.vox,inv_question3.vox,ini_question3.vox,to_question3.vox

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

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

我试图使用下面的命令在vim编辑器中进行查找和替换,但它没有用,

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

1 个答案:

答案 0 :(得分:0)

我不确定您要替换的内容,但如果您想匹配重复的字符串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,}/, '$1,end.vox,');

console.log(result)




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

然后,用$1,end.vox,代替$1 inv_question3.vox