string Val = Regex.Replace(TextBox1.Text, @"[^a-z, A-z, 0-9]", string.Empty);
此表达式与 ^ 和 _ 字符不匹配。我该怎么做才能匹配这些价值观?
还有一件事是,如果 TextBox1.Text 字符串值大于10,则最后一个字符串值(第11个字符串值)应该匹配。
答案 0 :(得分:3)
请注意,^括在方括号中时具有特殊含义。它意味着匹配除了字符类中指定的所有内容,基本上是'[]'
。
如果您想匹配"^"
和"_"
,请将插入符号(^)
置于开头括号之后的其他位置,使用重复来限制字符长度:
[\W_]
这将确保整个字符串中的字符为10。
或者你使用斜杠"\^"
来逃避它。
string Val = Regex.Replace(TextBox1.Text, @"[\W_]", string.Empty);
答案 1 :(得分:1)
您的问题是A-z
。
这匹配所有ASCII字母A
到Z
,然后是Z
和a
之间的字符(其中包含{{1} }和^
),然后是_
和a
之间的所有ASCII字母。这意味着z
和^
将与您的正则表达式(以及您在正则表达式中包含的逗号和空格)不匹配。
为了澄清,您的正则表达式也可以写成
_
你可能想要
[^a-zA-Z0-9\[\\\]^_` ,]