我试图形成一个正则表达式来捕获空格和连字符,但它不采取连字符。.任何建议输入:
578094-131208138004 568315-131208116005 LG506339301 ROTABLE NO 2 BEARING
Regex:/^\w+(\s+\w+)*$/如果我想添加-它在表达式中不起作用
/^\w+(\s+\w+)*$/
yhuiod9q1#
这将匹配单个连字符或空格。
/[-\s]/
这将无限匹配多个空格和/或连字符。
/(?:-|\s)(?:-|\s)*/
第二个工作的主要原因是因为有一个'non-captuing group' tacked到最后。它匹配第一组捕获的相同内容,但它会继续匹配来自单个输入的多个匹配。强大的东西在这里。
wlwcrazw2#
基于你当前的正则表达式,我想这就是你要找的:^\w+([\s-]+\w+)*$这里[\s-]+匹配任何正数的空格符号或连字符。一般来说,这个正则表达式将匹配以单词符号开头和结尾的字符串,以及单词符号、空格符号和连字符的任何组合。
^\w+([\s-]+\w+)*$
[\s-]+
2条答案
按热度按时间yhuiod9q1#
这将匹配单个连字符或空格。
这将无限匹配多个空格和/或连字符。
第二个工作的主要原因是因为有一个'non-captuing group' tacked到最后。它匹配第一组捕获的相同内容,但它会继续匹配来自单个输入的多个匹配。强大的东西在这里。
wlwcrazw2#
基于你当前的正则表达式,我想这就是你要找的:
^\w+([\s-]+\w+)*$
这里
[\s-]+
匹配任何正数的空格符号或连字符。一般来说,这个正则表达式将匹配以单词符号开头和结尾的字符串,以及单词符号、空格符号和连字符的任何组合。