2016-09-17 139 views
0

我想写一个返回true的正则表达式,如果第一个字母大写,其余的都是小写。但是,我写的方法总是返回false。我的正则表达式有什么问题,我应该做些什么改变。 这是我的代码。C#正则表达式首字母大写其余小写

public bool VerifyName(string name){ 
    Regex rgx = new Regex("^[A-Z][a-z]+$"); 
    return rgx.Equals(name); 
} 

回答

4

您使用的是Equals方法,它会比较你的字符串与regex对象平等。这永远是真的,就像比较苹果和橘子。改为使用IsMatch

而且你还可以通过添加Unicode支持改进的正则表达式:

^\p{Lu}\p{Ll}*$ 

如果我们简化了一下,我们得到的代码:

public bool VerifyName(string name) 
    => Regex.IsMatch(name, @"^\p{Lu}\p{Ll}*$"); 
相关问题