VB.NET正则表达式布尔匹配

时间:2013-07-03 19:07:36

标签: asp.net vb.net

我根据各种功能获得密码,但我不相信我的RegEx是正确的:

    If Regex.IsMatch(password, "/\d+/", RegexOptions.ECMAScript) Then
        'Contains a number
        score += 1
    End If

    If Regex.IsMatch(password, "/[a-z]/", RegexOptions.ECMAScript) Then
        'Contains a lowercase letter
        score += 1
    End If

    If Regex.IsMatch(password, "/[A-Z]/", RegexOptions.ECMAScript) Then
        'Contains an uppercase letter
        score += 1
    End If

    If Regex.IsMatch(password, "/.[!,@,#,$,%,^,&,*,?,_,~,-,£,(,)]/", RegexOptions.ECMAScript) Then
        'Contains special character
        score += 2
    End If

我该如何解决这个问题?我相信它们的格式是C#而不是VB.NET。

1 个答案:

答案 0 :(得分:1)

.Net Regex类采用正则表达式的原始文本。

你不应该用/字符包裹它;这些只是匹配文字/

其他一些说明:

  • 您不需要RegexOptions.ECMAScript
  • 字符类不以逗号分隔
  • 您缺少个特殊字符。使用否定类(所有非字母数字字符)
  • 通过将它们预先编译为可重用的Regex实例,而不是每次都重新解析每个正则表达式,可以使它们更快。