js正则表达式-将任一空格与特定字符匹配

时间:2018-11-25 14:46:39

标签: javascript regex

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

a)54 -4 Broadway-匹配
b)54 - 4 Broadway-匹配
c)54- 4 Broadway-匹配
d)54-4 Broadway-不匹配

\s*-\s* 

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

吸引团体?也匹配最后一种情况->

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

谢谢

2 个答案:

答案 0 :(得分:1)

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

/\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。

答案 1 :(得分:0)

这是在这种情况下可以使用的正则表达式(有人发布但后来删除了...):

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