文字の大文字と小文字の両方をキャプチャする条件がある単純なC#アプリケーションを作成しています。
これが私の状態です:
if( txtChord.Text == "A" || txtChord.Text == "a" && cbKeys.SelectedIndex == 6 ){
txtAnswer.Text = "B";
}
正規表現を使用してこれをより効率的に実行したいと思います。
メソッドを使用String.Compare(String, String, Boolean)
し、大文字と小文字を区別しないように最後の引数にtrueを指定します。
上記のメソッドは、負の数、0、または正の数を返します。
値のみが必要な場合は、オプションでbool
使用できます。String.Equals(String, String, StringComparison)
StringComparison.OrdinalIgnoreCase
ケースを無視するためによく行われることは、次のようなものです。
if( txtChord.Text.ToLower() == "a" && cbKeys.SelectedIndex == 6 )
ただし、ステートメントでは、の優先順位が。よりも高いif
ため、2つのチェックは「同等」ではないことに注意してください。あなたのものは以下と同等です:&&
||
if( txtChord.Text == "A" || (txtChord.Text == "a" && cbKeys.SelectedIndex == 6))
これは、単一のチェックで置き換えることはできません。
これを行うために正規表現は必要ありません。あなたは簡単に行うことができます:
if(txtChord.Text.ToLower() == "a" && cbKeys.SelectedIndex ==6)
{
txtAnswer.Text = "B";
}
はテキストボックスToLower()
内のtxtChord
テキストを小文字にし、それをチェックできます。または、を使用できますToUpper()
。同じことですが、大文字を使用します。
Regex.Match(txtChord.Text、 "a"、RegexOptions.IgnoreCase)
ここにはたくさんの良い情報があります:http://www.regular-expressions.info/
文字の大文字または小文字をキャッチするには、「[Aa]」を使用するか、おそらくフラグを使用することもできます。