繁体   English   中英

特殊字符的正则表达式?

[英]Regex for special characters?

string Val = Regex.Replace(TextBox1.Text, @"[^a-z, A-z, 0-9]", string.Empty);

此表达式与字符^_不匹配。 我该怎么做才能匹配这些价值观?

还有一件事是,如果TextBox1.Text字符串值大于10,则最后一个字符串值(第11个字符串值)应该匹配。

请注意,当括在方括号中时,^具有特殊含义。 这意味着匹配除了字符类中指定的所有内容,基本上是'[]'

如果要匹配"^""_" ,请将插入符号(^)放在另一个位置,而不是像开头括号一样,使用重复来限制字符长度:

[\W_]

这将确保整个字符串中的字符为10。

或者你使用斜杠"\\^"来逃避它。

string Val = Regex.Replace(TextBox1.Text, @"[\W_]", string.Empty);

你的问题是Az

这匹配所有ASCII字母AZ然后是Za之间的字符(其中包含^_ ,然后是az之间a所有ASCII字母。 这意味着^_将不会与您的正则表达式匹配(以及您在正则表达式中包含的逗号和空格)。

为了澄清,你的正则表达式也可以写成

[^a-zA-Z0-9\[\\\]^_` ,]

你可能想要

string Val = Regex.Replace(TextBox1.Text, @"[^a-zA-Z0-9]", string.Empty);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM