1

我已经在项目中使用了这个正则表达式,但它似乎不能正常工作 - 它以前在其他应用程序中工作过。

它告诉我parsing "((^[^_]{1}\S{1,40})\_(\S{5,6})\_(\S{1,4})\_(\S{1,4})\_(\S{4,6}))(\.{1}\S{1,5})$" - Unrecognized escape sequence \_.

我将文件中的正则表达式作为常量:

public static string MatchDocument = @"((^[^_]{1}\S{1,40})\_(\S{5,6})\_(\S{1,4})\_(\S{1,4})\_(\S{4,6}))(\.{1}\S{1,5})$";

我没有使用正则表达式的经验,但我认为在字符串前面加上@可以解决任何反斜杠问题......为什么这不起作用?

4

3 回答 3

5

它的意思正是它所说的。

\_不是正则表达式转义序列(在正则表达式的 .NET 风格中)。

如果你想要一个下划线,只需使用_.

于 2013-04-15T16:08:44.727 回答
1

您的字符串包含多个\_. 这不是有效的正则表达式转义。

于 2013-04-15T16:08:56.587 回答
0

下划线是文字字符,不需要转义。

于 2013-04-15T16:12:10.623 回答