2012-03-28 76 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范围内的一个或多个数字搜索。转义括号还将确保只有括号内的数字被找到。