【发布时间】:2015-09-10 18:42:59
【问题描述】:
我需要 2 个或多个用空格分隔的单词的正则表达式,例如:
Test //invalid
Test two //valid
Test two three //valid
Test-two //invalid
[\w\s]+ 给了我所有的单词,但不确定如何从验证中排除 1 个单词。
【问题讨论】:
标签: regex
我需要 2 个或多个用空格分隔的单词的正则表达式,例如:
Test //invalid
Test two //valid
Test two three //valid
Test-two //invalid
[\w\s]+ 给了我所有的单词,但不确定如何从验证中排除 1 个单词。
【问题讨论】:
标签: regex
字符类中不要包含空格:\w+\s+\w+
通过在字符类中保留空格,您已指定需要任意数量的单词字符或空格,这将很快吞噬整个字符串。通过分离单词和空格类,您可以指定“任意数量的单词字符后跟任意数量的空格字符,然后再添加一些单词字符”。
除非您要捕获单词,否则请从它们中删除量词,因为您不在乎单词有多长,只关心它们是否存在:\w\s+\w
【讨论】:
\s+\w+ 提取到可重复的模式中就可以了:\w+(?:\s+\w+)+
词类、空格、词类……
\w+ \w+
【讨论】:
我知道它已经晚了,但为了将来的观点
/(\w+\s+[^-])+\S[^-]+/
此正则表达式将返回有效输入和无效输入的第一个有效部分。
【讨论】: