正则表达式匹配含空格与连字符的内容问题求助
正则表达式匹配空格与连字符的解决方案
你的问题出在原正则里的\w只匹配字母、数字和下划线,不包含连字符,而且原结构没法处理带连字符的单个字符串块。直接修改字符集和结构就能解决:
修改后的正则表达式
/^[\w-]+(?:\s+[\w-]+)*$/
规则拆解
^和$:锁定整行匹配,避免部分匹配[\w-]+:匹配由字母、数字、下划线和连字符组成的连续字符块,+保证至少有一个字符(?:\s+[\w-]+)*:非捕获组,匹配“空格+字符块”的组合,*允许这种组合出现0次或多次,完美适配带空格的多短语内容
可选优化(如果不需要下划线)
如果你的场景里不需要匹配下划线,把\w换成[a-zA-Z0-9]即可:
/^[a-zA-Z0-9-]+(?:\s+[a-zA-Z0-9-]+)*$/
验证你的输入
这个正则能完美匹配你给出的所有内容:
578094-131208138004
568315-131208116005
LG506339301
ROTABLE NO 2 BEARING
内容的提问来源于stack exchange,提问作者sromit
相关产品推荐
相关产品推荐

