我有内容的描述文本文件中这样的方式构造:正则表达式在C#中找到了“(编号)”表达
Book title - (number)
目前用户必须要知道书名,然后读取书号和外观为适当的文件(number.txt是书的文件名)。
我想使用Regexp类来提取“(数)”表达式。我的示例代码不工作(返回TRUE即使“()”不存在:
Regex r = new Regex("([0-9])");
能不能帮我树立正确的正则表达式
我有内容的描述文本文件中这样的方式构造:正则表达式在C#中找到了“(编号)”表达
Book title - (number)
目前用户必须要知道书名,然后读取书号和外观为适当的文件(number.txt是书的文件名)。
我想使用Regexp类来提取“(数)”表达式。我的示例代码不工作(返回TRUE即使“()”不存在:
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]+\\)");
在你只是在寻找一个数字的那一刻,试试这个:
Regex r = new Regex("\([0-9]+\)");
这对于在0-9范围内的一个或多个数字搜索。转义括号还将确保只有括号内的数字被找到。
谢谢。不幸的是它不起作用 - 即使不编译。错误:“无法识别的转义序列”。我也尝试过这个解决方案。看起来像C#不允许转义括号“()”符号。 – Viper 2012-03-28 10:22:01
现在它工作完美。谢谢。 – Viper 2012-03-28 10:37:50