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

标签 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.请问你在哪里?

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

最佳答案

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

/-\S|\S-/g

RegEx Demo

此正则表达式使用交替来匹配前面有非空格或后面有非空格的 -


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

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

Replacement Demo

关于javascript - 用于查找和替换的单个正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32405158/

相关文章:

javascript - CI 和 Angular4 : Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response

javascript - 通过 Javascript 从字符串中提取纬度和经度

javascript - 实例上的正则表达式总匹配

javascript - NodeJS 将数组放入 MongoDB doc.validate 不是函数

regex - 如何编写正则表达式来匹配 .net 引用号 #11223344

Python - 从 IP 地址中删除前导零

javascript - 以 http ://or https://, 开头的 URL,以逗号分隔,没有空格

javascript - 如何获得 previous sibling 姐妹的名字

javascript - HTTP 请求 - 缺少响应 - net_error = -3 (ERR_ABORTED)

javascript - 如何获取 const MyContext = React.createContext();对于 React js 中的其他组件