用于查找和替换的单个正则表达式

时间:2015-09-04 19:19:28

标签: javascript regex

使用单个正则表达式可以找到错误的分隔符:

Gary Numan- Cars.mp3 // match
Gary Numan -Cars.mp3 // match
Gary Numan-Cars.mp3  // match

但不是" - ",这是正确的。

Gary Numan - Cars.mp3

因此可以使用简单的替换来改变:

Gary Numan- Cars.mp3   --->  Gary Numan - Cars.mp3
Gary Numan - Cars.mp3  --->  Gary Numan - Cars.mp3
Gary Numan-Cars.mp3    --->  Gary Numan - Cars.mp3

我已经得到了以下内容,但它与所有内容相匹配。 - 我可以做到这一点两次通过我确定它现在只有一个。

Reginald X. Pression你在哪里?

 /(\s{1}-|-\s{1}|-)/gi

1 个答案:

答案 0 :(得分:5)

您可以使用此正则表达式:

/-\S|\S-/g

RegEx Demo

此正则表达式使用交替匹配-,前面是非空格或后跟非空格。

编辑:根据您编辑的部分,您可以使用此replace

input = input.replace(/\s*-\s*/g, ' - ');

Replacement Demo