2011-07-25 18 views
3

對不起做這要求所有的正則表達式的專家在那裏的快捷方式:)正則表達式(匹配字+一些數)C#

我可以使用哪些正則表達式C#一個字+一定數量的結尾匹配

例如,字符串的結束與「故事」 + 0或多個數字

"ThisIsStory1" = true 
"ThisIsStory2000" = true 
"ThisIsStory"  = true 
"Story1IsThis" = false 
"IsStoryThis1" = false 

希望這是有道理

正則表達式,我可以插入到C#將是非常美妙匹配。

謝謝

+1

+1爲認可這是快速的方式:) – Phil

回答

1

嘗試[A-Za-z]*Story[0-9]*

如果你想檢查整條線,^[A-Za-z]*Story[0-9]*$

+0

我不知道C#特定的正則表達式,但我知道在其他語言中,'?'的意思是「零或一個」; 「零或多」將是'*'。 – qid

+1

它也不匹配字符串的結尾,所以FirstStory123MoreStory在不應該的時候會返回true。 – Ray

6

你需要像這樣Story[0-9]*$

所以它的故事匹配(忽略任何東西之前,你可能需要增加更多的),那麼對於故事和字符串的結尾之間的0個或多個數字。

0
string compare = "story1withANumber"; 
Regex regex = new Regex(@"[A-Za-z]+Story[0-9]*"); 

if (regex.IsMatch(compare)) 
{ 
    //true 
} 

regex = new Regex("[0-9]"); 

if (regex.IsMatch(compare)) 
{ 
    //true 
} 
0

之前的故事,隨後的故事相匹配的字符數????使用此:

"[A-Za-z]*(s|S)tory\d*$" 
+0

爲什麼要投票? – TheVillageIdiot

0

滿足您的條件的.NET正則表達式是:

Story\d*\b 

(如果需要使用Regex.IgnoreCase選項。)

\b字邊界一致,所以Story1IsThis不會匹配,但ThisIsAStory1會。 'Story'這個詞不需要結束字符串,所以字符串"ThisIsAStory234 ThisIsNot"將在Story234上匹配。