我正在创建一个简单的C#应用程序,其中有一个条件来捕获一个字母的大写和小写字母。正则表达式来捕获大写和小写字母
这是我的情况:
if(txtChord.Text == "A" || txtChord.Text == "a" && cbKeys.SelectedIndex == 6){
txtAnswer.Text = "B";
}
我想做到这一点更有效地使用正则表达式。
我正在创建一个简单的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
选项。
好吧,会尝试这^^ –
你不需要regex来做到这一点。你可以简单的做:
if(txtChord.Text.ToLower() == "a" && cbKeys.SelectedIndex ==6)
{
txtAnswer.Text = "B";
}
的ToLower()
将在txtChord
文本框中小写任何文本,然后你可以检查对抗。或者您可以使用ToUpper()
。这是同样的事情,但用大写字母。
什么也经常做忽略的情况是somethig这样的:
if(txtChord.Text.ToLower() == "a" && cbKeys.SelectedIndex == 6)
但需要注意的是,在你的if
语句两次检查都没有“等价物”,因为&&
具有较高的precendence比||
。您的等价物:
if(txtChord.Text == "A" || (txtChord.Text == "a" && cbKeys.SelectedIndex == 6))
不能用单个检查替换。
Regex.Match(txtChord.Text, “A”,RegexOptions.IgnoreCase)
这里有一吨的好信息:http://www.regular-expressions.info/
为了赶上大写或小写的信,你可以使用'[Aa]'或可能还带有国旗。
在这种情况下检查它是A还是罚款。在这种情况下不要使用正则表达式。另外,如果你无法理解如何使用正则表达式,请先停下来学习。 –