2013-03-11 2 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

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

+0

+1 예,이 작업을 잘해야한다, 원래 게시물에 연속 단어가 없었고 그 대답을 엉망으로 만들었습니다 :) – Habib

+1

예, 나는 OP 당신은 답을 썼 읍니다. (그렇지 않다면 정확했을 것입니다!) –

관련 문제