1

|正規表現を使用すると、値を入力して多くの値を検索できることがわかりました。例えば:

Regex sabrina = new Regex("Rihanna|rihanna|Sabrina|sabrina");

他の値と比較したい文字列があるので、次のように使用ifします。

if (rihanna == "Rihanna" || rihanna == "sabrina")

if私の質問は、短くすることが可能かどうかです。このコードが機能していないことはわかっていますが、次のようなものを探しています:

if (rihanna == "Rihanna|sabrina")
4

7 に答える 7

5

単線ソリューション:

if("Rihanna|rihanna|Sabrina|sabrina".Split(new[] {'|'}).Contains(rihanna))

またはString.Splitメソッドの使用なし:

if ((new[] { "Rihanna", "rihanna", "Sabrina", "sabrina" }).Contains(rihanna))

そのようなチェックが複数回実行される場合はstring[]、可能な値の配列を変数に保存する必要があります。

var names = new[] { "Rihanna", "rihanna", "Sabrina", "sabrina" };

if(names.Contains(rihanna))
于 2013-04-03T21:15:48.847 に答える
0

独自の正規表現を使用して、単一行として使用できます..

if (Regex.Match(rihanna, "Rihanna|rihanna|Sabrina|sabrina").Success)

または、このように大文字と小文字を区別しないようにします..

if (Regex.Match(rihanna, "rihanna|sabrina", RegexOptions.IgnoreCase).Success){
于 2013-04-03T21:18:45.437 に答える
0

あなたがしようとしているもののように見えるケーシングを無視して、次を使用してString.Compareください:

if(String.Compare(rihanna, "sabrina", StringComparison.OrdinalIgnoreCase) == 0 ||
   String.Compare(rihanna, "rihana", StringComparison.OrdinalIgnoreCase) == 0 ) {
    // do stuff
}
于 2013-04-03T21:21:10.807 に答える