2013-03-11 75 views

回答

12

我假設你正在尋找多個連續的空格。
我會使用System.Text.RegularExpressions.Regex

Regex regex = new Regex(@"\s{2,}"); // matches at least 2 whitespaces 
if (regex.IsMatch(inputString)) 
    // do something 
+0

使用'\ s'表示'空白字符'時應該非常小心,因爲在許多正則表達式實現中,這不僅僅包含空格。在.NET中使用它時,它實際上還包含新的行和製表符(有關更多信息,請參見[this](http://www.regular-expressions.info/shorthand.html))。如果這對你很重要,你應該使用上面鏈接/重複答案的答案,而不是這個答案。 – Sheridan 2016-02-03 14:57:01

5

這可能是一個快速實現:

public static bool HasConsecutiveSpaces(string text) 
{ 
    bool inSpace = false; 

    foreach (char ch in text) 
    { 
     if (ch == ' ') 
     { 
      if (inSpace) 
      { 
       return true; 
      } 

      inSpace = true; 
     } 
     else 
     { 
      inSpace = false; 
     } 
    } 

    return false; 
} 

但是,如果你真的不需要擔心速度,只需使用在前面的回答給定的正則表達式的解決方案。

+0

最快的解決方案,在這個線程據我可以告訴 – Onkelborg 2013-03-11 09:57:52

+0

+1,是的,這應該做的很好,在原來的帖子沒有連續的詞,並搞砸了我的答案:) – Habib 2013-03-11 09:59:55

+1

是的,我認爲OP澄清後你會寫出你的答案(否則這是正確的!) – 2013-03-11 10:01:17

相關問題