2015-07-03 33 views
0

我有以下的字符串集,我需要測試是否有任何字符串以特定模式結束"(\d)"如何檢查文本是否以某些特定的字符串結尾,例如(2)?

atat_vav(1)  
atat_(2)vav(1) 
atat_(2)vav 
atat_(2)vav(1)(12) 
atat_(2)vav(1)(3) 

我曾嘗試下面的正則表達式只告訴我,它包含如下這個模式:

\((\d*?)\) 

但我已經檢查它必須包含在年底只有字符串。它應該在測試中失敗第三個字符串。
編輯:正確表達

\((\d+)\)$ 

我怎樣才能在括號中的最後一個數字,如果它通過測試?

(1) => 1 

解決方案:在匹配組,你會發現匹配的內容只是\ 1裝回引用它,你將獲得1作爲結果。

Regex Test

回答

2

使用$它斷言我們行端(線錨的年底)。在最後|($ = \ n?)

@"\((\d*)\)$" 

DEMO

+0

+1,ohh ..我的錯誤,我測試所有這些字符串,所以它不能得到它正確..順便謝謝米爾。 @Avinash ..我可以得到我的第二個問題的答案? –

+0

@NiranjanKala:第二個問題是什麼? –

+0

如何通過測試得到括號內的最後一位數字? –

1

使用。這將匹配新行或END。

\((\d*?)\)(?=\n|$) 
2
@"\((\d+)\)$" 

如果在大括號之間的數字是強制性

,如果我還沒有注意到前面,你可以做folloowing其C#來獲取值在最後括號之間

Regex.Match("User (10) name (20)", @"\((\d+)\)$").Groups[1].Value; 
相關問題