我将创建一个简单的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
语句中,这两个检查不是“等价的”,因为&&
比||
的优先级更高。 您的代码等效于:
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)