最小长度正则表达式

时间:2012-01-27 03:44:02

标签: c# regex

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

\s.{10}.*\s

如果重要的话,我正在使用C#4.0(Asp.net正则表达式验证器)。

3 个答案:

答案 0 :(得分:7)

根本不使用正则表达式可能更容易:

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

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

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

如果你不关心非空格字符之间的空格,那么其他答案就涵盖了那个场景。

答案 1 :(得分:3)

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

\s*\S.{8,}\S\s*

答案 2 :(得分:1)

如果您尝试检查(例如我的情况下包含8位数的电话号码),您需要参考您所需的号码以下的号码。

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