2013-04-08 229 views
-2

的,我有以下字符串模式:檢查一個字符串是一個字符串模式

const string STRING_PATTERN = "Hello {0}"; 

如何檢查一個字符串是上面的字符串模式的?

例如:

字符串「Hello World」是上面的字符串模式

字符串「abc」的是上面的字符串模式不。

最好

+0

你可以寫一個簡單的示例代碼? – e1011892 2013-04-08 19:42:41

+2

'str.StartsWith(「你好」)'會夠嗎?如果不是,你到底需要什麼? – usr 2013-04-08 19:42:54

+0

如果我使用StartsWith,它將無法正確使用以下模式「您好{0},歡迎來到ABC」 – e1011892 2013-04-08 19:44:46

回答

8

使用正則表達式。

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

或者爲@usr建議:

myString.StartsWith("Hello ") 
+0

假設我有一個未知的字符串模式,我如何檢查一個字符串是這種模式? – e1011892 2013-04-08 19:47:18

+0

'Regex.IsMatch(myString,pattern)'如果'pattern'是一個正則表達式。如果您的格式中有模式,則可以先將其轉換爲正則表達式,或者編寫自己的解析器。 – 2013-04-08 19:48:29

+0

我是新的正則表達式,你能寫一個示例代碼,將下面的模式「你好{0}」({0}是一個數字)轉換成正則表達式嗎? – e1011892 2013-04-08 19:55:11

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(); 
    } 
    } 
} 
相關問題