我正在创建一个简单的C#应用程序,其中有条件捕获字母的大写和小写。
这是我的条件:
if( txtChord.Text == "A" || txtChord.Text == "a" && cbKeys.SelectedIndex == 6 ){
txtAnswer.Text = "B";
}
我想使用正则表达式更有效地做到这一点。
答案 0 :(得分:6)
使用String.Compare(String, String, Boolean)
方法并向最后一个参数提供true以忽略大小写。
上述方法返回负数,0或正数。
如果您只想要bool
值,则可以String.Equals(String, String, StringComparison)
选项使用StringComparison.OrdinalIgnoreCase
。
答案 1 :(得分:3)
忽略案例经常做的事情是这样的事情:
if( txtChord.Text.ToLower() == "a" && cbKeys.SelectedIndex == 6 )
但请注意,在if
语句中,两项检查并非“等效”,因为&&
的{{3}}高于||
。你的相当于:
if( txtChord.Text == "A" || (txtChord.Text == "a" && cbKeys.SelectedIndex == 6))
单次检查无法取代。
答案 2 :(得分:1)
您不需要正则表达式来执行此操作。你可以这么简单:
if(txtChord.Text.ToLower() == "a" && cbKeys.SelectedIndex ==6)
{
txtAnswer.Text = "B";
}
ToLower()
会将txtChord
文本框中的任何文字设为小写,然后您可以对此进行检查。或者您可以使用ToUpper()
。它是一样的,但是大写。
答案 3 :(得分:1)
Regex.Match(txtChord.Text, “一”,RegexOptions.IgnoreCase)
答案 4 :(得分:0)
这里有很多好的信息:http://www.regular-expressions.info/
要捕捉字母的大写或小写,您可以使用'[Aa]'或者也可以使用旗帜。