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)withStringComparison.OrdinalIgnoreCase选项。

于 2012-12-03T17:31:13.250 回答
3

通常忽略大小写的做法是这样的:

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

但请注意,在您的if声明中,这两个检查不是“等效的”,因为优先&&高于. 你的相当于:||

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 回答