我正在创建一个简单的 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)
withStringComparison.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)
这里有很多很好的信息:http ://www.regular-expressions.info/
要捕捉字母的大写或小写,您可以使用 '[Aa]' 或可能还带有标志。