4

文字の大文字と小文字の両方をキャプチャする条件がある単純なC#アプリケーションを作成しています。

これが私の状態です:

if( txtChord.Text == "A" || txtChord.Text == "a" && cbKeys.SelectedIndex == 6 ){
                txtAnswer.Text = "B";
            }

正規表現を使用してこれをより効率的に実行したいと思います。

4

5 に答える 5

6

メソッドを使用String.Compare(String, String, Boolean)し、大文字と小文字を区別しないように最後の引数にtrueを指定します。

上記のメソッドは、負の数、0、または正の数を返します。

値のみが必要な場合は、オプションでbool使用できます。String.Equals(String, String, StringComparison)StringComparison.OrdinalIgnoreCase

于 2012-12-03T17:31:13.250 に答える
3

ケースを無視するためによく行われることは、次のようなものです。

if( txtChord.Text.ToLower() == "a" && cbKeys.SelectedIndex == 6 )

ただし、ステートメントでは、の優先順位が。よりも高いifため、2つのチェックは「同等」ではないことに注意してください。あなたのものは以下と同等です:&&||

if( txtChord.Text == "A" || (txtChord.Text == "a" && cbKeys.SelectedIndex == 6))

これは、単一のチェックで置き換えることはできません。

于 2012-12-03T17:31:57.940 に答える
1

これを行うために正規表現は必要ありません。あなたは簡単に行うことができます:

if(txtChord.Text.ToLower() == "a" && cbKeys.SelectedIndex ==6)
{
     txtAnswer.Text = "B";
}

はテキストボックスToLower()内のtxtChordテキストを小文字にし、それをチェックできます。または、を使用できますToUpper()。同じことですが、大文字を使用します。

于 2012-12-03T17:31:35.677 に答える
1

Regex.Match(txtChord.Text、 "a"、RegexOptions.IgnoreCase)

于 2012-12-03T17:32:50.670 に答える
0

ここにはたくさんの良い情報があります:http://www.regular-expressions.info/

文字の大文字または小文字をキャッチするには、「[Aa]」を使用するか、おそらくフラグを使用することもできます。

于 2012-12-03T17:34:38.070 に答える