C#正则表达式跳过一些特殊字符
我是Regex的新手,正在努力学习。我的要求是只考虑一个字符串是有效的,如果它只有小字母,绝对没有别的。 例:abc、khj、SDF是有效单词,但abc、khj、123、a$bd无效 我正在写一个正则表达式,如下所示:C#正则表达式跳过一些特殊字符,c#,regex,C#,Regex,我是Regex的新手,正在努力学习。我的要求是只考虑一个字符串是有效的,如果它只有小字母,绝对没有别的。 例:abc、khj、SDF是有效单词,但abc、khj、123、a$bd无效 我正在写一个正则表达式,如下所示: private bool IsValid(string str) { Regex r = new Regex(@"[a-z][^<>%'=\$]"); Console.WriteLine(str + " : " + r.IsMatch(str).T
private bool IsValid(string str)
{
Regex r = new Regex(@"[a-z][^<>%'=\$]");
Console.WriteLine(str + " : " + r.IsMatch(str).ToString());
return r.IsMatch(str);
}
private bool有效(字符串str)
{
正则表达式r=新正则表达式(@“[a-z][^%'=\$]”);
Console.WriteLine(str+“:”+r.IsMatch(str.ToString());
返回r.IsMatch(str);
}
但当我将以下输入传递给此方法时:
"a<>'b=b"
"abc"
"a$b"
"123"
"IHH"
“a'b=b”
“abc”
“a$b”
"123"
“IHH”
它将abc
识别为有效词,但也将a$b
和a'b=b
识别为有效词!(为这些返回true
)
我想了解如何跳过a$b
和a'b=b???
方法应该为它们返回false
请帮我理解
谢谢你的正则表达式看起来像
var pat = /^[a-z]+$/;
好的参考:
尝试以下方法:
^[a-z]+$
使用具有适当模式的此类方法:
private bool IsValid(string str)
{
Regex r = new Regex(@"^[a-z]+$");
Console.WriteLine(str + " : " + r.IsMatch(str).ToString());
return r.IsMatch(str);
}
我正在尝试这一个,它给我“假”的每一个输入现在。即使对于abc、def等校正,它也能工作。我错误地传递了一个额外的空格作为方法的输入。我把它修剪了一下,效果很好。非常感谢。我正在尝试这一个,它给我的每一个输入“假”。即使对于abc、def等校正,它也能工作。我错误地传递了一个额外的空格作为方法的输入。我把它修剪了一下,效果很好。非常感谢。对不起,不行。它为每个输入(甚至abc、def等)提供false