2009-09-24 103 views
1

我在C#编写一个简单的正则表达式来定位没有任何反斜杠之前或之后反斜杠:错误解析正则表达式

Regex reg = new Regex(".*(?<!\\)\\(?!\\).*"); 

然而,这statment产生一个ArgumentException:?“解析”(” - 不足)的“

组圆括号似乎匹配。任何人都可以发现问题吗?

回答

15

将@符号放在字符串前,否则需要双斜杠(一次用于C#,一次用于正则表达式)。

Regex reg = new Regex(@".*(?<!\\)\\(?!\\).*"); 

Regex reg = new Regex(".*(?<!\\\\)\\\\(?!\\\\).*"); 
+0

你钉它。我不知道为什么有人低估了这一点。 – 2009-09-24 18:55:42

+1

感谢字符串文字的好处,双重转义只是使这些更难以解析(对于人类来说) – brism 2009-09-24 22:16:48

4

使用字符串字面@

Regex reg = new Regex(@".*(?<!\\)\\(?!\\).*");