限制字符串长度的正则表达式

7

我有一个问题,需要使用 RegularExpressionValidator 来限制字符串长度为400个字符。

我的表达式是 .{0,400}

我的问题是:是否有一种方法可以在不考虑空格的情况下将字符长度限制为400个?

我希望能够接受字符串中的空格,但不计入长度。这可能吗?


这并不是一个纯粹的正则表达式可以实现的功能,但在许多编程语言中都可以实现。您试图在哪种语言中实现这个功能? - Copas
我正在一个asp.net web应用程序(vb.net)中使用RegularExpressionValidator控件。 - Boopid
2个回答

11

我基本上同意Greg的看法,但这是你想要的正则表达式:

^\s*([^\s]\s*){0,400}$

@Boopid:如果你真的只是想匹配空格字符,那么在正则表达式中用一个空格替换\s。


应该使用[^\s]而不是[^ ],除此之外:很好! - Stephan202
2
或者简单地使用\S代替[^\s] - Peter Boughton
@Peter:你需要在那里加入一些星号,否则它只会匹配空格-字符-空格-字符-空格-字符-空格... - RichieHindle
RicheiHindle - 哦,是的,那里应该有一对星号。不确定我为什么错过了它们。:$ - Peter Boughton
我同意Greg的解决方案可能是最好的,但这对我的情况有所帮助。谢谢! - Boopid
显示剩余3条评论

7

看起来您可能想编写自己的验证器类而不是使用RegularExpressionValidator。正则表达式确实有它们的用途,但这似乎不是其中之一。

您的自定义验证器可以删除所有空格,然后检查字符串的长度。最终,代码将比执行相同操作的正则表达式更易读。


我同意,只需删除所有空格并检查字符串的长度。与上面建议的正则表达式相比,这可能非常高效(尽管这只是一种理论)。 - Joseph Pecoraro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接