我正在尝试组建一个RegEx,它允许使用字母数字和一些特殊字符(@ -_。)。我试图将这些特殊字符列入白名单,但也允许使用其他特殊字符。所以我试图将除上述之外的所有其他特殊字符列入黑名单。使用它:
/^([^\s!#$%&'()*+\/:;<=>?\[\\\]^`{|}~,][a-zA-Z@._0-9-]*[^\s!#$%&'()*+\/:;<=>?\[\\\]^`{|}~,])$/
如何添加双引号,以便在字符串中的任何位置都不允许。 尝试了\&#34;但是没有用。
答案 0 :(得分:1)
使用此
Dim clean as string = Regex.replace(tbname,"[^A-Za-z0-9\-/]","")
这个阻止所有特殊字符。
答案 1 :(得分:0)
如果我读你的正则表达式是正确的,并理解你的愿望:
^( # Start of string and capture group
[^\s!-,\/:-?\[\\\]^`{|}~,] # Any character, BUT "blacklisted"
[\w@.-]* # Any number of word characters, @, . or -.
[^\s!-,\/:-?\[\\\]^`{|}~,] # Any character, BUT "blacklisted"
)$
使用范围简化了它。例如。在字符类中,!-,
与!"#$%&'()*+,
相同,其中黑名单不需要的"
。
答案 2 :(得分:0)
您可以使用白名单方法,但最后需要-
: [@_.-]
;或逃避它: [@\-_.]
否则,@-_
表示“@
的ascii与_
的ascii之间的任何内容”。
Regex101.com是这类产品的黄金,它解释了正则表达式的每个部分。