正则表达式用于匹配一些以后应该被忽略的字符

Regex for matching some characters that should be left out later

我将尝试用一个例子来解释我的情况,考虑以下字符串:

03 - The-Basics-of-Querying-the-Dom.mov

我需要删除所有 -s(连字符),不包括数字后面的那个。换句话说,单词之间的所有 连字符

这是我创建的正则表达式:/([^\s])\-/。但问题是,当我尝试替换时,space 之前的字符也被删除了。

按照我想要的结果:

03 - The Basics of Querying the Dom.mov

想一想,我可以使用排除组之类的东西吗?我试图在捕获组中使用 ?: & ?! 来避免它被匹配,但没有给出任何积极的结果。

你可以这样做:

(?<=\w)-(?=\w)

Demo

我刚刚修改了你已经提出的正则表达式,使用正后视(只断言正确的位置):

/(?<=[^\s])\-/