【问题标题】:Using regular expressions to check for a minimum number of characters?使用正则表达式检查最少字符数?
【发布时间】:2012-02-26 06:07:57
【问题描述】:

我有以下代码来验证应用程序的用户名:

Regex usernameRegex = new Regex("[A-Za-z0-9_]");
if (usernameRegex.IsMatch(MyTextBox.Text)) {
    // Create account, etc.
}

如何修改我的正则表达式以检查用户名是否包含一定数量的字符?

【问题讨论】:

  • Regular Expression Language - Quick Reference 很快被发现正在搜索 .NET 正则表达式。
  • 我想他要问的是如何匹配最小数量的字符,而不是最小数量。
  • 请不要在标题前加上“C#”之类的前缀。这就是标签的用途。

标签: c# regex winforms


【解决方案1】:

此表达式仅验证包含A to Za to z 和数字0 to 9 的任意组合的所有文本。您可以使用正则表达式定义字符串的长度:

Regex reg= new Regex(@"^[A-Z]{3,}[a-z]{2,}\d*$")

{3,}{2,} 在这里表示字符串必须至少包含 3 个大写字符、至少 2 个小字符和任意数量的数字字符。

例如: 有效 : AAAbb, AAAbb2, AAAAAAbbbbb, AAAAAbbbbbb4343434

无效:AAb、Abb、AbAbabA、1AAAbb、

【讨论】:

  • 我知道,我在问如何设置最小字符数
【解决方案2】:

要在正则表达式中设置最小(或最大)范围,您可以使用{from,to} 语法。

以下将仅匹配至少包含 5 个字母数字和下划线字符的字符串:

[A-Za-z0-9_]{5,}

以下将匹配最少 5 个和最多 10 个:

[A-Za-z0-9_]{5,10}

【讨论】:

    【解决方案3】:
    [A-Za-z0-9_]
    

    [] "brackets": 是您要匹配的一组字符。

    A-Z: 表示它将匹配此范围 A-Z 内的任何大写字母。

    a-z: 表示它将匹配此范围 a-z 内的任何小字母。

    0-9: 表示它将匹配 0-9 范围内的任何数字。

    _: 表示将匹配“_”字符。

    现在这个正则表达式通常会匹配以下内容:从 a 到 z 的任何字符(小,大写)、任何数字(从 0 到 9)和下划线“_”。

    即"a.,.B.,10.._" 这将匹配 "a, B, 10, _"。但当然你需要添加单行正则表达式选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-16
      • 1970-01-01
      相关资源
      最近更新 更多