【问题标题】:REGEX min. 4 chars, max 11, allow space and special chars正则表达式分钟。 4 个字符,最多 11 个,允许空格和特殊字符
【发布时间】:2011-12-05 21:38:52
【问题描述】:

我在 RegularExpressionValidator .NET 控件上有一个正则表达式:^\w{4,11}$ 工作正常。它允许字符串长度在 4 到 11 之间。 我希望它允许空格和特殊字符,例如“攓ø”“å”(丹麦字符)。

有什么建议吗?

【问题讨论】:

  • 请告知您使用的语言或工具。

标签: regex


【解决方案1】:

^.{4,11}$ 怎么样?或者只是检查行长度是否在 4 到 11 之间。 如果这不合适,我认为匹配您不允许允许的字符更容易...

【讨论】:

    【解决方案2】:

    既然你在谈论 .net \w 应该包括所有带有属性字母的 unicode 代码点。这意味着 Unicode 中所有语言的所有字母都已在 \w 中可用。

    所以你只需要添加空格就完成了:

    ^[\w ]{4,11}$
    

    在我的测试中匹配“Foo æ ø å”。

    '[\w ]' 是一个字符类,现在包括\w 和空格中包含的所有字符。如果您需要更多字符,只需将它们添加到类中即可。

    \p{L} 只能是字母,如果您不想允许数字,可以使用它。

    【讨论】:

    • 很好的解释,但与 ^ 相比,我看不出行为有什么不同。{4,11}$
    • . 是除换行符以外的任何字符。 [\w ] 更少,它只有字符、数字、_(绑定字符)和空格。如果您的字符串包含例如, 我的表达式不会匹配它。
    • 所以如果你不关心字符而只想检查长度,那么^.{4,11}$ 就可以了。
    • \w 中是否包含“-”(破折号)?
    • 不,破折号不包含在\w 中,请参阅msdn for a detailed overview
    【解决方案3】:

    你可以用这个:

    ^[\wæøå]{4,11}$

    【讨论】:

    • 不需要,因为 OP 正在谈论 .net 所有这些字符都已包含在 \w
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 2019-06-26
    • 2018-07-24
    • 1970-01-01
    • 2017-08-15
    • 2015-10-06
    相关资源
    最近更新 更多