为什么正则表达式匹配抛出异常?

Cod*_*ody 1 c# regex

我已经获得了这个正则表达式用于一个项目,它似乎没有正常工作 - 它之前在其他应用程序中工作.

它告诉我 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})$";
Run Code Online (Sandbox Code Playgroud)

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

Ode*_*ded 5

这正是它所说的.

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

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