C# C中的RegExp“找到一个”;(数字)“;表达

C# C中的RegExp“找到一个”;(数字)“;表达,c#,regex,C#,Regex,我有一个描述文本文件,其内容以如下方式构造: Book title - (number) 当前用户需要查找图书标题,然后读取图书编号并查找相应的文件(number.txt是图书的文件名) 我想使用Regexp类来提取“(number)”表达式。我的示例代码不工作(即使“()”不存在,也返回TRUE: Regex r = new Regex("([0-9])"); 你能帮我构造正确的RegExp吗?你应该转义括号: Regex r = new Regex(@"\([0-9]\)"); 如果n

我有一个描述文本文件,其内容以如下方式构造:

Book title - (number)
当前用户需要查找图书标题,然后读取图书编号并查找相应的文件(number.txt是图书的文件名)

我想使用Regexp类来提取“(number)”表达式。我的示例代码不工作(即使“()”不存在,也返回TRUE:

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

你能帮我构造正确的RegExp吗?

你应该转义括号:

Regex r = new Regex(@"\([0-9]\)");
如果
number
包含多个数字,则应添加
+

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


您应该转义括号:

Regex r = new Regex(@"\([0-9]\)");
如果
number
包含多个数字,则应添加
+

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


目前您只需要查找一个位数,请尝试以下操作:

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

它将搜索0-9范围内的一个或多个数字。对括号进行转义也将确保只找到括号之间的数字。

当您只查找单个数字时,请尝试以下操作:

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

它搜索0-9范围内的一个或多个数字。转义括号也将确保只找到括号之间的数字。

谢谢。不幸的是,它不起作用-甚至无法编译。错误:“无法识别的转义序列”。我之前也尝试过此解决方案。似乎C不允许转义括号“()”符号。谢谢。不幸的是它不起作用-甚至没有编译。错误:“无法识别的转义序列”。我之前也尝试过这个解决方案。看起来C不允许转义括号“()”符号。