我正在尝试将工作作为正则表达式。它应该只接受具有昏迷和撇号的字母数字。它们可以按任何顺序排列。我创建了一个只接受接受字符的方法。它似乎拒绝了我只想接受的角色。这是代码:
Public Shared Function formatToken_alphanumericWithSpecificSymbol(input As String) As String
Dim pattern As String = "^[\w', ]+$"
Dim rgx As Regex = New Regex(pattern)
Dim mInput As StringBuilder = New StringBuilder()
For Each c As Char In input
If rgx.IsMatch(c.ToString()) Then
Else
mInput.Append(c)
End If
Next
Return mInput.ToString()
End Function
假设只返回所有接受的字符。如果传递abc'*的示例:它应该只返回abc'
答案 0 :(得分:1)
如果您只想过滤掉非法字符,可以执行此操作。
Dim pattern As String = "[^\w', ]"
Dim rgx As Regex = New Regex(pattern)
Return rgx.Replace(input, "")
如果字符串有效则返回
Dim pattern As String = "^[\w', ]+$"
Dim rgx As Regex = New Regex(pattern)
Return rgx.IsMatch(input)
只是为了对您的实现发表评论,您的代码无效的原因是您只是在ELSE
条件中附加字符,删除其他内容并且它会起作用。然而,由于正则表达式可以在整个解决方案上运行,您应该让它自己而不是单独解析每个字符。