2014-02-26 51 views
0

我想問你一個關於正則表達式的簡單問題:C#正則表達式,字符串開頭

如何才能比較字符串的開頭?

例如:汽車[200; 200; 200]自行車[20]

if (item.Name == "Car*") { textBox.Text = "Car"; } 

我不知道我必須鍵入而不是「*」,使字符串的其餘部分無關。

+2

對於這個特定的用例,String.StartsWith會正常工作。 – ken2k

+1

如果您不確定字符串的大小寫,您可能需要添加「ToLower()」。 –

+0

只是爲了它,正則表達式使用'線錨'來確定一個字符串的開始和結束 - >'「^ Car。*」'將檢查一個字符串是否以'Car'開始# – Jonesopolis

回答

4

代替正則表達式,你可以做到這一點與string.StartsWith

if(item.Name.StartsWith("Car")) 

如果你想區分大小寫的比較,那麼你可以這樣做:

if(item.Name.StartsWith("car",StringComparison.InvariantCultureIgnoreCase)) 
7

我不明白了一個道理用在這裏Regex 。你可以使用String.StartsWith

if(item.Name.StartsWith("Car")) { textBox.Text = "Car"; } 
0

雖然我會建議使用String.StartsWith如其他人所說,你的正則表達式尋找我相信是:

^[cC]ar

假設不區分大小寫

0

如果你仍然想要做的正則表達式:

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; 
0

如果你想使用正則表達式,那麼你想要(?i:^car.*)

  • (?i::打開案例忽略組的其餘部分休息。
  • ^:匹配字符串的開頭。
  • car:尋找字符串「car」
  • .*:匹配其他任意數量的字符。
  • ):結束組

你也可以刪除該組的東西,並使用正則表達式對象本身就忽略大小寫選項。

+0

您不必添加'。*'。 – Ryan

+0

這是事實。只有當你想使用正則表達式對象中的捕獲匹配時纔有必要。 –

0

當然,你應該使用String.StartWith()函數如果你使用正則表達式它會弄亂你的代碼。我的意思是我會花更多的時間。

你可以這樣下去。

if(item.Name.startsWith(「Car」)){textBox.Text =「Car」; }

+1

這個答案已經提供了多次 – ken2k

+0

@ ken2k爲什麼-1問題就是這樣的.. 對不起,我不明白你的邏輯。 我剛纔給出了我的意見 –

+0

-1的定義:「這個答案沒有用」。不要粗魯,但你的答案沒有用,因爲在你做之前已經提供了多次完全相同的答案。 – ken2k

相關問題