regex 单词之间的空格和连字符的正则表达式

s4n0splo  于 2023-04-22  发布在  其他
关注(0)|答案(2)|浏览(142)

我试图形成一个正则表达式来捕获空格和连字符,但它不采取连字符。.任何建议输入:

578094-131208138004
568315-131208116005
LG506339301
ROTABLE NO 2 BEARING

Regex:/^\w+(\s+\w+)*$/如果我想添加-它在表达式中不起作用

yhuiod9q

yhuiod9q1#

这将匹配单个连字符或空格。

/[-\s]/

这将无限匹配多个空格和/或连字符。

/(?:-|\s)(?:-|\s)*/

第二个工作的主要原因是因为有一个'non-captuing group' tacked到最后。它匹配第一组捕获的相同内容,但它会继续匹配来自单个输入的多个匹配。强大的东西在这里。

wlwcrazw

wlwcrazw2#

基于你当前的正则表达式,我想这就是你要找的:^\w+([\s-]+\w+)*$
这里[\s-]+匹配任何正数的空格符号或连字符。
一般来说,这个正则表达式将匹配以单词符号开头和结尾的字符串,以及单词符号、空格符号和连字符的任何组合。

相关问题