2011-12-21 2 views
0

문자열이 1, 0 및 쉼표로만 구성되는지 확인해야합니다. (알려 peplase 당신이 생각하는 경우 또는이 개선 될 수있다!)문자열이 특정 문자만을 사용하여 작성되었는지 확인하는 방법

시작과 종료에 대한 검사는 다음과 같이 수행 할 수 있습니다

: 그것은 또한 0 또는 1도 0 또는 1로 끝나는로 시작한다
if ((text.StartsWith("0") || text.StartsWith("1")) //Starts with 0 or 1 
    && (text.EndsWith("0") || text.EndsWith("1")) //Ends with 0 or 1 
    && //How to check if it only has 0, 1 and comma?   ) 
{ 
    //Do Something! 
} 
+0

당신이 사용하는 정규식을 수행 할 수 있습니다. http://www.dotnetperls.com/regex-match – Zohaib

답변

4

당신은 Regex을 사용할 수 있습니다,이 시도 :

if (new Regex("^[01][01,]*[01]$").Match(text).Success) 
{ 
    // do your stuffs 
} 
+0

잘 작동하지만 새로운 Regex를 인스턴스화 할 필요가 없다는 사실에 주목할 필요가 있습니다. 이로 인해 기차 잔해와 같은 결과가 발생합니다. (http://stackoverflow.com/a/8589299/1106367 참조) – Adam

+0

@codeparkle agree –

0

[01] [01,] +? [01]과 같은 정규 표현식을 사용하십시오. 확실히 거기에 더 나은 정규식 패턴을 사용할 수 있습니다. 그러나 그것은 작동 할 것이다.

if(Regex.IsMatch(mystring, "[01][01,]+?[01]")) 
    //yes it matches; 

이 정규식 패턴은 다음에 0 또는 1, 0, 1의 선택 순서를 찾습니다 ","다음 다시 0 또는 1로 끝나는.

1
public bool CheckMyString(string text) 
{ 
    if ((text.StartsWith("0") || text.StartsWith("1")) 
     && (text.EndsWith("0") || text.EndsWith("1"))) 
    { 
     foreach (char c in text) 
     { 
     if (c != "1" && c != "0" && c != ",") 
     { 
      return false; 
     } 
     } 
    } 
    else 
    { 
     return false; 
    } 

    return true; 
} 
0
if (Regex.IsMatch("0101,1010", "^[01][01,]*[01]$")) 
{ 
    doSomething(); 
} 

당신은이 작업을 위해 파일의 맨 위에

using System.Text.RegularExpressions; 

를 추가해야합니다.

0

편도입니까? 당신이 시도 할 수

if (value.Trim("01,".ToCharArray()).Length == 0) 
0

,

System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("[01][01,]+?[01]"); 
if (!reg.IsMatch("3452")) 
{ 
    Response.Write("Does Not Match"); 
} 

if (reg.IsMatch("01111,1")) 
{ 
    Response.Write("Yes Match!"); 
} 
관련 문제