我想問你一個關於正則表達式的簡單問題:C#正則表達式,字符串開頭
如何才能比較字符串的開頭?
例如:汽車[200; 200; 200]自行車[20]
if (item.Name == "Car*") { textBox.Text = "Car"; }
我不知道我必須鍵入而不是「*」,使字符串的其餘部分無關。
我想問你一個關於正則表達式的簡單問題:C#正則表達式,字符串開頭
如何才能比較字符串的開頭?
例如:汽車[200; 200; 200]自行車[20]
if (item.Name == "Car*") { textBox.Text = "Car"; }
我不知道我必須鍵入而不是「*」,使字符串的其餘部分無關。
代替正則表達式,你可以做到這一點與string.StartsWith
if(item.Name.StartsWith("Car"))
如果你想區分大小寫的比較,那麼你可以這樣做:
if(item.Name.StartsWith("car",StringComparison.InvariantCultureIgnoreCase))
我不明白了一個道理用在這裏Regex
。你可以使用String.StartsWith
if(item.Name.StartsWith("Car")) { textBox.Text = "Car"; }
不需要正則表達式。 有對String類很好的方法calld StartsWith(字符串參數) MSDN: http://msdn.microsoft.com/pl-pl/library/system.string.startswith(v=vs.110).aspx
使用方法如下:
string MyString = "Car [ 200 ; 200 ; 200 ], Bike [20]"
if(MyString.StartsWith("Car")) Do what you whant
雖然我會建議使用String.StartsWith
如其他人所說,你的正則表達式尋找我相信是:
^[cC]ar
假設不區分大小寫
如果你仍然想要做的正則表達式:
if (Regex.IsMatch(item.Name, "^Car")) {
//Something to do
}
,或者不區分大小寫:
if (Regex.IsMatch(item.Name, "^Car", RegexOptions.CultureInvariant)) {
//Something to do
}
或者直接分配到文本框:
Match m = Regex.Match(item.Name, "^(Car)(.*)");
if (m.Success)
textBox.Text = m.Groups[1].Value;
如果你想使用正則表達式,那麼你想要(?i:^car.*)
(?i:
:打開案例忽略組的其餘部分休息。^
:匹配字符串的開頭。car
:尋找字符串「car」.*
:匹配其他任意數量的字符。)
:結束組你也可以刪除該組的東西,並使用正則表達式對象本身就忽略大小寫選項。
您不必添加'。*'。 – Ryan
這是事實。只有當你想使用正則表達式對象中的捕獲匹配時纔有必要。 –
對於這個特定的用例,String.StartsWith會正常工作。 – ken2k
如果您不確定字符串的大小寫,您可能需要添加「ToLower()」。 –
只是爲了它,正則表達式使用'線錨'來確定一個字符串的開始和結束 - >'「^ Car。*」'將檢查一個字符串是否以'Car'開始# – Jonesopolis