2012-03-28 73 views
0

我有內容的描述文本文件中這樣的方式構造:正則表達式在C#中找到了「(編號)」表達

Book title - (number) 

目前用戶必須要知道書名,然後讀取書號和外觀爲適當的文件(number.txt是書的文件名)。

我想使用Regexp類來提取「(數)」表達式。我的示例代碼不工作(返回TRUE即使「()」不存在:

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

能不能幫我樹立正確​​的正則表達式

回答

4

你應該逃脫括號:

Regex r = new Regex(@"\([0-9]\)"); 

如果number包含更多的是一個數字,你應該增加+

Regex r = new Regex(@"\([0-9]+\)"); 

或者

Regex r = new Regex("\\([0-9]+\\)"); 
+0

謝謝。不幸的是它不起作用 - 即使不編譯。錯誤:「無法識別的轉義序列」。我也嘗試過這個解決方案。看起來像C#不允許轉義括號「()」符號。 – Viper 2012-03-28 10:22:01

+0

現在它工作完美。謝謝。 – Viper 2012-03-28 10:37:50

0

在你只是在尋找一個數字的那一刻,試試這個:

Regex r = new Regex("\([0-9]+\)"); 

這對於在0-9範圍內的一個或多個數字搜索。轉義括號還將確保只有括號內的數字被找到。