C# 最小长度正则表达式

C# 最小长度正则表达式,c#,regex,C#,Regex,我正在尝试编写一个正则表达式来验证用户输入是否大于X个非空白字符。我基本上尝试过滤掉开头和结尾的空白,同时仍然确保输入大于X个字符;字符可以是任何字符,但不能是空格(空格、制表符、回车、换行符)。 这是我一直使用的正则表达式,但它不起作用: \s.{10}.*\s 顺便说一句,我正在使用C#4.0(Asp.net正则表达式验证器)。完全不使用正则表达式可能更容易: input.Where(c => !char.IsWhiteSpace(c)).Count() > 10 如果空白不

我正在尝试编写一个正则表达式来验证用户输入是否大于X个非空白字符。我基本上尝试过滤掉开头和结尾的空白,同时仍然确保输入大于X个字符;字符可以是任何字符,但不能是空格(空格、制表符、回车、换行符)。 这是我一直使用的正则表达式,但它不起作用:

\s.{10}.*\s

顺便说一句,我正在使用C#4.0(Asp.net正则表达式验证器)。

完全不使用正则表达式可能更容易:

input.Where(c => !char.IsWhiteSpace(c)).Count() > 10

如果空白不应该在中间计数,那么这将起作用:

(\s*(\S)\s*){10,}

如果您不关心非空格字符之间的空格,则其他答案将涵盖该情况。

此正则表达式在第一个和最后一个非空格字符之间查找八个或更多字符,忽略前导和尾随空格:

\s*\S.{8,}\S\s*
如果您试图检查(比如在我的例子中,一个包含8位数字的电话号码),您需要参考您需要的号码下面的号码

(\s*(\S)\s*){7,}

对不起,刚刚更新。我使用正则表达式验证器。@标记-如果在一些有效字符的中间有空白,例如“f a i”,那就很好,只要在第一个非空白区和最后一个非空白区之间有x个字符就行了。这让我走上了正确的道路,我最终选择了:
(\b*(\S))。{10,}\b
这似乎是基于一些快速测试,但我显然不是正则表达式大师。更妙的是:
(\b*(\S)\S*){10,}[\S\b]
它必须是正则表达式吗?你可以不用正则表达式就很容易做到。