Regex 正则表达式是否匹配不包含任何超过10个字符的单词的字符串?

Regex 正则表达式是否匹配不包含任何超过10个字符的单词的字符串?,regex,Regex,我有一个正则表达式,它将匹配任何包含10个字符的单词的字符串。 但是我需要的是相反的结果。 一种正则表达式,只匹配不包含>=10个字符的字符串。未测试: ^(.)+\S{10}(.)+$ 匹配一个或多个单词。第一个单词是可选的,因此空字符串或包含所有空格的字符串将匹配。单词之间必须用空格分隔,因此相邻字符不能超过9个。使用否定断言 ^\s*\S{0,9}(\s+\S{1,9})*\s*$ \S{10}匹配10个\S的序列(必须是更长序列的子序列)(?!pattern)是一个负前瞻,如果模式

我有一个正则表达式,它将匹配任何包含10个字符的单词的字符串。 但是我需要的是相反的结果。
一种正则表达式,只匹配不包含>=10个字符的字符串。

未测试:

^(.)+\S{10}(.)+$ 

匹配一个或多个单词。第一个单词是可选的,因此空字符串或包含所有空格的字符串将匹配。单词之间必须用空格分隔,因此相邻字符不能超过9个。

使用否定断言

^\s*\S{0,9}(\s+\S{1,9})*\s*$
\S{10}
匹配10个
\S
的序列(必须是更长序列的子序列)
(?!pattern)
是一个负前瞻,如果模式不匹配,则断言为true<代码>*允许前瞻性尽可能地查看

因此,整个模式是

(?!.*\S{10})
这匹配所有不包含
\S{10}
的字符串

另见
您可能希望使用\w(“单词字符”)而不是\S(“非空格字符”)。字符串“!@$%^&*()!!!”将匹配\S{10},但不匹配\w{10}
^(?!.*\S{10}).*$