在下面的字符串中,我想匹配连字符前后有空格的字符串,但如果没有空格也没关系:
a) 54 -4 Broadway
- 比赛
b) 54 - 4 Broadway
- 比赛
c) 54- 4 Broadway
- 比赛
d) 54-4 Broadway
- 不应该匹配
\s*-\s*
<- 也匹配最后一个例子,但不是必需的。
捕获组?也匹配最后一个案例 ->
(\s*-\s*)|(^\s-^\s)
谢谢
最佳答案
您可以使用以下正则表达式:
/\d+(?!-\d)\s*?-\s*?\d+\s*?Broadway/g
正则表达式匹配一个或多个数字
,后跟一个连字符
和一个数字
的负前瞻
.
然后它匹配零个或多个 White Spaces
、一个 hyphen
和零个或多个 White Spaces
,后跟一个或多个 数字
和零个或多个White Spaces
,以字符串'Broadway'
结尾。
根据评论编辑:
/\w+(?!-\w)\s*?-\s*?\w+.*/g
现在它将匹配 Word
字符(包括数字)而不是数字,并匹配该行的其余部分,无论它是什么文本。
仍然不匹配:54-4 Broadway。
关于javascript - js regex - 将空格与特定字符匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53468664/