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

时间:2010-06-03 05:17:16

标签: regex

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

我有正则表达式,它将匹配任何包含10个字符的字符串。 但是,我需要反过来。
一个正则表达式,只匹配没有> = 10个字符的字符串。

2 个答案:

答案 0 :(得分:3)

使用否定断言。

(?!.*\S{10})

\S{10}匹配10 \S的序列(必须是更长时间的子序列)。 (?!pattern)是一个负向前瞻,如果模式不匹配则为真。 .*允许前瞻尽可能看起来。

因此整个模式是

^(?!.*\S{10}).*$

匹配所有不包含\S{10}的字符串。

另见

答案 1 :(得分:0)

未测试:

^\s*\S{0,9}(\s+\S{1,9})*\s*$

匹配一个或多个单词。第一个单词是可选的,因此空字符串或所有空格的字符串将匹配。单词必须用空格\s+分隔,因此不得超过9 \S个字符。