【发布时间】:2011-12-05 21:38:52
【问题描述】:
我在 RegularExpressionValidator .NET 控件上有一个正则表达式:^\w{4,11}$
工作正常。它允许字符串长度在 4 到 11 之间。
我希望它允许空格和特殊字符,例如“攓ø”“å”(丹麦字符)。
有什么建议吗?
【问题讨论】:
-
请告知您使用的语言或工具。
标签: regex
我在 RegularExpressionValidator .NET 控件上有一个正则表达式:^\w{4,11}$
工作正常。它允许字符串长度在 4 到 11 之间。
我希望它允许空格和特殊字符,例如“攓ø”“å”(丹麦字符)。
有什么建议吗?
【问题讨论】:
标签: regex
^.{4,11}$ 怎么样?或者只是检查行长度是否在 4 到 11 之间。
如果这不合适,我认为匹配您不允许允许的字符更容易...
【讨论】:
既然你在谈论 .net \w 应该包括所有带有属性字母的 unicode 代码点。这意味着 Unicode 中所有语言的所有字母都已在 \w 中可用。
所以你只需要添加空格就完成了:
^[\w ]{4,11}$
在我的测试中匹配“Foo æ ø å”。
'[\w ]' 是一个字符类,现在包括\w 和空格中包含的所有字符。如果您需要更多字符,只需将它们添加到类中即可。
\p{L} 只能是字母,如果您不想允许数字,可以使用它。
【讨论】:
. 是除换行符以外的任何字符。 [\w ] 更少,它只有字符、数字、_(绑定字符)和空格。如果您的字符串包含例如, 我的表达式不会匹配它。
^.{4,11}$ 就可以了。
\w 中,请参阅msdn for a detailed overview
你可以用这个:
^[\wæøå]{4,11}$
【讨论】:
\w