我正在創建一個簡單的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還是罰款。在這種情況下不要使用正則表達式。另外,如果你無法理解如何使用正則表達式,請先停下來學習。 –