正規表現を使用して、文字列に大文字が含まれているかどうかを検出する代替手段はありますか?現在、次の正規表現を使用しています。
Regex.IsMatch(fullUri, "[A-Z]")
それはうまくいきますが、「正規表現を使用している場合、2つの問題がある」という古い格言をよく耳にします。
LINQを使用できます。
fullUri.Any(char.IsUpper);
正規表現は過剰であるようです:
bool containsAtLeastOneUppercase = fullUri.Any(char.IsUpper);
あなたもおそらくすることができます(.NET 1.0で動作するものが必要な場合:):
bool hasUpperCase = !fullUri.ToLower().Equals(fullUri);
この単純な正規表現はおそらく正常に動作しますが
Linqを使用してください!
fullUri.Any(c=> char.IsUpper(c));
正規表現はASCII大文字のみを検索します。便利なことに、.NET正規表現エンジンはUnicode対応であり、
Regex.IsMatch(fullUri, @"\p{Lu}")
あなたの場合、あなたはあなたの文字列に非ASCII文字を期待していないと思います(その名前を考慮して)。