我是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$b
和a<>'b=b
识别为有效字词! (为那些人返回true
)
我想了解如何跳过a$b
和a<>'b=b ??
该方法应该为它们返回false
。
请帮我理解。
由于
答案 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)
试试这个:^[a-z]+$