2013-04-08 3 views
-2

의 경우, 나는 다음과 같은 문자열 패턴이 있습니다확인 문자열이 문자열 패턴

const string STRING_PATTERN = "Hello {0}"; 

가 어떻게 문자열 위의 문자열 패턴입니다 확인할 수 있습니까? 예를 들어

:

문자열에 "Hello World"가 위의 문자열 패턴

문자열 "ABC"의 것은 위의 문자열 패턴이 아니다.

최고

+0

은 간단한 샘플 코드를 작성할 수 있습니까? – e1011892

+2

'str.StartsWith ("Hello")'충분하니? 그렇지 않다면 정확히 무엇이 필요합니까? – usr

+0

StartsWith를 사용하면 다음 패턴 "Hello {0}, Welcome to ABC"로 올바르게 작동하지 않습니다. – e1011892

답변

8

정규식을 사용하십시오.

Regex.IsMatch(myString, "^Hello .+$") 

또는 @usr 같은

제안 :

myString.StartsWith("Hello ") 
+0

알 수없는 문자열 패턴이 있다고 가정하면이 패턴의 문자열을 어떻게 확인할 수 있습니까? – e1011892

+0

'Pattern'이 정규 표현식이면'Regex.IsMatch (myString, pattern)'입니다. 형식에 패턴이있는 경우 먼저 패턴을 정규 표현식으로 변환하거나 자체 파서를 작성할 수 있습니다. –

+0

정규 표현식을 처음 사용하는 경우 다음 패턴 "Hello {0}"({0}은 숫자)을 정규 표현식으로 변환하는 샘플 코드를 작성할 수 있습니까? – e1011892

2
using System; 
using System.Text.RegularExpressions; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
    static void Main(string[] args) 
    { 
     string txt="Hello World"; 

     string re1="(Hello)"; // Word 1 
     string re2=".*?"; // Non-greedy match on filler 
     string re3="((?:[a-z][a-z]+))"; // Word 2 

     Regex r = new Regex(re1+re2+re3,RegexOptions.IgnoreCase|RegexOptions.Singleline); 
     Match m = r.Match(txt); 
     if (m.Success) 
     { 
      String word1=m.Groups[1].ToString(); 
      String word2=m.Groups[2].ToString(); 
      Console.Write("("+word1.ToString()+")"+"("+word2.ToString()+")"+"\n"); 
     } 
     Console.ReadLine(); 
    } 
    } 
}