0

我是 Regex 的新手,并试图学习这一点。我的要求是仅在字符串只有小字母时才认为它是有效的,绝对没有别的。例如:abc、khj、sdfs 是有效词,但 Abc、KHJ、123、a$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$b以及a<>'b=b ??该方法应该返回false给他们。

请帮我理解。

谢谢

4

3 回答 3

1

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

private bool IsValid(string str)
 {
    Regex r = new Regex(@"^[a-z]+$");
    Console.WriteLine(str + " : " + r.IsMatch(str).ToString()); 
    return r.IsMatch(str);
 }
于 2012-07-22T06:34:32.417 回答
0

你的正则表达式看起来像

var pat = /^[a-z]+$/;
于 2012-07-22T06:19:36.040 回答
0

很好的参考:RegEx 备忘单

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

于 2012-07-22T06:20:24.587 回答