我正在尝试编写一个正则表达式,如果第一个字母大写,其余为小写,则返回true。但是,我写的方法总是返回false。我的正则表达式有什么问题,我应该做些什么改变。 这是我的代码。
public bool VerifyName(string name){
Regex rgx = new Regex("^[A-Z][a-z]+$");
return rgx.Equals(name);
}
答案 0 :(得分:4)
您正在使用Equals
方法,该方法会将 equality 的字符串与regex对象进行比较。这永远不会是真的,就像比较苹果和橘子一样。请改用IsMatch
。
您还可以通过添加Unicode支持来改进正则表达式:
^\p{Lu}\p{Ll}*$
如果我们稍微简化代码:
public bool VerifyName(string name)
=> Regex.IsMatch(name, @"^\p{Lu}\p{Ll}*$");