2011-08-02 66 views

回答

2

如果我正確地讀你的問題,你想知道一個字符串是否只包含逗號。

如果是這樣,請使用此正則表達式:^[,]+$

這隻會匹配包含一個或多個逗號而沒有別的字符串。

2

一串逗號?

Regex.IsMatch(str, @"^,*$"); 

這會告訴你str是否完全由commans組成。

+0

'Regex.Match()'返回一個Match對象,所以你必須檢查該對象的'Success'屬性以確定它是否工作。如果你想要的只是一個yes-no-answer的答案,那麼'IsMatch()'更合適。 –

+0

@Alan謝謝:)我更新了我的答案。 (我不知道C#,只是正則表達式,但我認爲我可以查找C#語法並且無論如何回答。我很接近,對吧?哈哈) – Paulpro

+1

我認爲設計正則表達式對象的人在吸毒。 –

6
[^,] 

如果匹配,則表示一個字符串包含非逗號字符。

一個更完整的例子:

if (!Regex.IsMatch(yourTestString, "[^,]")) 
{ 
    // This string does NOT contain commas 
} 
+0

+1以外的箱子;-) – Cameron

+0

不錯的答案:) +1。 – Sagotharan

3

這應做到:

var text = ",,,"; 
Regex.IsMatch(text, @"^,+$"); // true 
1

我建議,作爲一個字符的正則表達式將總是要檢查輸入的每個字符字符串在最壞的情況下,一個簡單的for循環肯定會更有效率。像這樣的東西會給在更短的時間和空間完全相同的效果比任何等價Regex

private void IsOnlyOneChar(string input, char c) 
{ 
    for (var i = 0; i < input.Length; ++i) 
     if (input[i] != c) 
      return false; 

    return true; 
} 

不是真的你要找的,但在我看來,這是你的最優解的答案。

+0

+1我最喜歡這個答案。 – Paulpro

相關問題