C#正则表达式首字母大写其余小写
问题描述:
我想写一个返回true的正则表达式,如果第一个字母大写,其余的都是小写。但是,我写的方法总是返回false。我的正则表达式有什么问题,我应该做些什么改变。 这是我的代码。C#正则表达式首字母大写其余小写
public bool VerifyName(string name){
Regex rgx = new Regex("^[A-Z][a-z]+$");
return rgx.Equals(name);
}
答
您使用的是Equals
方法,它会比较你的字符串与regex对象平等。这永远是真的,就像比较苹果和橘子。改为使用IsMatch
。
而且你还可以通过添加Unicode支持改进的正则表达式:
^\p{Lu}\p{Ll}*$
如果我们简化了一下,我们得到的代码:
public bool VerifyName(string name)
=> Regex.IsMatch(name, @"^\p{Lu}\p{Ll}*$");