Vb.net 显示文件扩展名或常规字符串中包含的无效字符

Vb.net 显示文件扩展名或常规字符串中包含的无效字符,vb.net,Vb.net,显示文件扩展名或常规字符串中包含的无效字符 我想将“{t}F@”中的字符{}@作为无效字符显示给用户。我不认为我的错误是{}@不匹配。RegEx模式似乎是有效的 尝试使用Expresso查找我的问题,但没有成功。查看了各种正则表达式无效字符例程,但我的正则表达式模式与这些类似 请告诉我我的错误是什么。提前谢谢 Private Sub TestBed() Dim Msg As String Dim MatchChars As String Dim Value As Stri

显示文件扩展名或常规字符串中包含的无效字符

我想将“{t}F@”中的字符{}@作为无效字符显示给用户。我不认为我的错误是{}@不匹配。RegEx模式似乎是有效的

尝试使用Expresso查找我的问题,但没有成功。查看了各种正则表达式无效字符例程,但我的正则表达式模式与这些类似

请告诉我我的错误是什么。提前谢谢

Private Sub TestBed()
    Dim Msg As String
    Dim MatchChars As String
    Dim Value As String = ".R {t} F@"
    Dim RxPattern As String = "^\.[^a-zA-Z0-9\s]+$"

    Msg = Value & vbCrLf & vbCrLf
    MatchChars = Nothing

    For Each CharMatch As Match In Regex.Matches(Value, RxPattern)
        If MatchChars Is Nothing Then
            MatchChars = CharMatch.ToString
        Else
            If Not MatchChars.Contains(CharMatch.ToString) Then
                MatchChars = MatchChars & CharMatch.ToString
            End If
        End If
    Next

    If MatchChars Is Nothing Then
        Msg = Msg & Value
    Else
        Msg = Msg & MatchChars
    End If
    MsgBox(Msg)
End Sub

此代码不使用编译。请发布实际代码。对不起,格斯伯格。代码已更正,现在应编译我们不在此处签名,因为您的姓名已列在问题下。您的正则表达式匹配整个字符串,而不是单个字符。因为字符串不符合模式,
Regex.Matches
为空,并且不执行每个
。如果您需要每个字符的匹配,这将是
Dim RxPattern As String=“[^.a-zA-Z0-9\s]”
。很抱歉签名。这是一个老习惯。