VB.NET&简单的正则表达

时间:2014-03-10 17:42:03

标签: regex vb.net

我有一个非常简单的正则表达式包含在子程序中:

Private Sub txtSubject_Leave() Handles txtSubject.Leave
    Dim pattern As String = "^[A-Z0-9]*"
    If Not Regex.IsMatch(txtSubject.Text, pattern) Then
        MsgBox("Invalid Subject")
        txtSubject.Focus()
    End If
End Sub

我确定它会变得简单,但我尝试的每一个字符串都是错误的,不会返回错误信息,我做错了什么?

1 个答案:

答案 0 :(得分:0)

^[A-Z0-9]*

在您要匹配的字符串的开头匹配0个或更多字母数字字符。 0部分在这里很重要,因为如果字符串的第一个字符是空格,则0将“匹配”并通过测试。如果要确保第一个字符是字母数字,请使用另一个量词,例如+

^[A-Z0-9]+

如果要确保字符串仅包含字母数字字符,请同时使用行尾锚点:

^[A-Z0-9]+$

在这种特殊情况下,如果您还想允许空字符串,则可以使用*

^[A-Z0-9]*$

这个也不允许使用非字母数字字符。