js将任意一个空格与特定字符匹配



在下面的字符串中,我想匹配一个在连字符之前或之后有空格的字符串,但如果没有空格也可以:

a(54 -4 Broadway-匹配
b(54 - 4 Broadway-匹配
c(54- 4 Broadway-匹配
1d(54-4 Broadway-是否应与匹配

s*-s* 

<-匹配最后一个例子,但不是必需的。

绑架集团?也匹配最后一个案例->

(s*-s*)|(^s-^s)  

感谢

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

/d+(?!-d)s*?-s*?d+s*?Broadway/g

正则表达式匹配one or more digits,后面是negative lookahead,表示hyphendigit

然后,它匹配零个或多个White Spaces、一个hyphen和零个或更多个White Spaces,然后匹配一个或更多digits和零个以上White Spaces,以字符串'Broadway'结束。

根据评论编辑

/w+(?!-w)s*?-s*?w+.*/g

现在,它将匹配Word字符(包括数字(而不是数字,并匹配行的其余部分,无论它是什么文本。

尽管如此,它并不匹配:百老汇大街54号-4号。

这是在这种情况下有效的正则表达式(有人发布了它,但后来删除了…(:

str.match(/s+-s*|-s+/)

最新更新