2016-09-17 21 views
0

最初の文字が大文字で残りが小文字の場合は真を返す正規表現を書こうとしています。しかし、私が書いたメソッドは常にfalseを返します。私の正規表現に何が間違っているのか、どのような変更を加えるべきですか? ここに私のコードです。C#正規表現の最初の文字大文字残りの小文字

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

答えて

4

あなたは正規表現オブジェクトと平等のためにあなたの文字列を比較しますEquals方法を、使用しています。これは決して真実ではなく、リンゴとオレンジを比較するようなものです。代わりにIsMatchを使用してください。

そして、あなたはまた、Unicodeのサポート追加することにより、正規表現を向上させることができます:

public bool VerifyName(string name) 
    => Regex.IsMatch(name, @"^\p{Lu}\p{Ll}*$"); 
:私たちは少しは我々が得るコードを単純化した場合

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

関連する問題