特殊字符的正则表达式?
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);
如果我使用这个表达式[^ \ w],那么我就是结果。但我想限制字符长度。只有十个字符允许。我该怎么办 ? – 2013-03-03 14:21:15
@ASHOKA检查我的答案,我添加了字符限制。 – 2013-03-03 14:31:02
@Kata:ASHOK故意使用否定字符类。他只是碰巧否定了比他想象的更多的角色。看到我的答案。 – 2013-03-03 15:30:39
您的问题是A-z
。
这符合所有ASCII字母A
通过Z
,然后摆在Z
和a
之间(包含,除其他外,^
和_
)字符,然后a
和z
之间的所有ASCII字母。这意味着^
和_
将不会与您的正则表达式匹配(以及您在正则表达式中包含的逗号和空格)。
为了澄清,你的正则表达式也被写成
[^a-zA-Z0-9\[\\\]^_` ,]
你可能想
string Val = Regex.Replace(TextBox1.Text, @"[^a-zA-Z0-9]", string.Empty);
你有什么要问究竟** ** .. – Anirudha 2013-03-03 14:00:50
插入符你只需要用反斜杠'\ ^'作为下面的代码'_'来转义,你不需要转义它,我无法理解你最后一个关于字符串长度的问题,注意强调? – 2013-03-03 14:02:11
此表达式@“[^ a-z,A-z,0-9]”将与^和_的所有其余值相匹配。但我需要表达来匹配这两个价值。 – 2013-03-03 14:04:23