C#Regular Expression跳过一些特殊字符

时间:2012-07-22 06:13:47

标签: c# regex

我是Regex的新手并试图了解这一点。我的要求是只考虑一个字符串是有效的,如果它只有小字母,绝对没有别的。 例如:abc,khj,sdfs是有效的单词,但Abc,KHJ,123,$ bd无效。

我正在写一个这样的正则表达式:

 private bool IsValid(string str)
 {
    Regex r = new Regex(@"[a-z][^<>%'=\$]");
    Console.WriteLine(str + " : " + r.IsMatch(str).ToString()); 
    return r.IsMatch(str);
 }

但是当我将以下输入传递给此方法时:

"a<>'b=b"
 "abc"
 "a$b"
"123"
"IHH"

它将abc标识为有效,但它也将a$ba<>'b=b识别为有效字词! (为那些人返回true) 我想了解如何跳过a$ba<>'b=b ??该方法应该为它们返回false

请帮我理解。

由于

3 个答案:

答案 0 :(得分:1)

使用适当模式的这种方法:

private bool IsValid(string str)
 {
    Regex r = new Regex(@"^[a-z]+$");
    Console.WriteLine(str + " : " + r.IsMatch(str).ToString()); 
    return r.IsMatch(str);
 }

答案 1 :(得分:0)

你的正则表达式看起来像

var pat = /^[a-z]+$/;

答案 2 :(得分:0)

好参考:RegEx Cheat Sheet

试试这个:^[a-z]+$