在以下字符串中,我想匹配在连字符之前或之后具有空格的字符串,但是如果没有任何空格也是可以的:
a)54 -4 Broadway
-匹配
b)54 - 4 Broadway
-匹配
c)54- 4 Broadway
-匹配
d)54-4 Broadway
-不匹配
\s*-\s*
<-也匹配最后一个示例,但不是必需的。
吸引团体?也匹配最后一种情况->
(\s*-\s*)|(^\s-^\s)
谢谢
答案 0 :(得分:1)
您可以使用以下正则表达式:
/\d+(?!-\d)\s*?-\s*?\d+\s*?Broadway/g
正则表达式匹配one or more digits
,后跟negative lookahead
代表hyphen
和digit
。
然后匹配零个或多个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+/)