特殊字符集:`〜!@#$%^& *()_- + = {} [] \ | :;“”'<>,。?/
这是在该特殊字符集中搜索项目的正确方法吗?
Regex.IsMatch(Result.Text, "^[`-/]")
我总是收到错误....我需要使用ASCII码吗?如果是这样,我该怎么做?提前谢谢!
答案 0 :(得分:3)
正则表达式具有与VB.NET不同的转义语法和规则。由于您在代码中处理正则表达式字符串,因此必须确保正确地为正则表达式和VB.NET转义字符串。
在您的示例中, - 需要使用...
进行转义Regex.IsMatch(Result.Text, "^[`\-/]")
要匹配提供的字符串中的任何字符,请尝试此操作...
Regex.IsMatch(Result.Text, "[`~!@#\$%\^&\*\(\)_\-\+=\{\}\[\]\\\|:;""'<>,\.\?/]")
答案 1 :(得分:1)
试试这个:
[`~!@#$%^&*()_+={}\[\]\\|:;""'<>,.?/-]
工作正则表达式示例:
在字符集中,只需要转义其中一些字符集。例如]
和\
,如果-
在最后,则无需转义。我不确定[
所以我还是逃过了它。
答案 2 :(得分:0)
您可以在字符串中使用具有特殊字符的转义字符
Dim str() As Byte
Dim j, n As Long
Dim ContainsSpecialChar As Boolean
Dim TempVendorName As String
str = Trim(VendorName)
n = 1
For j = 0 To UBound(str) - 1 Step 2
If (str(j) > 32 And str(j) < 47) Or (str(j) > 57 And str(j) < 65) Or (str(j) > 90 And str(j) < 97) Or (str(j) > 122) Then
ContainsSpecialChar = True
TempVendorName = Left(VendorName, n - 1) + "\" + Mid(VendorName, n)
n = n + 1
End If
n = n + 1
Next