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

标签 c# regex

我已获得此 Regex 以在项目中使用,但它似乎无法正常工作 - 它之前在其他应用程序中工作过。

它告诉我 解析 "((^[^_]{1}\S{1,40})\_(\S{5,6})\_(\S{1,4} )\_(\S{1,4})\_(\S{4,6}))(\.{1}\S{1,5})$"- 无法识别的转义序列\_.

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

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

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

最佳答案

它的意思就是它所说的。

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

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

关于c# - 为什么正则表达式匹配抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16019812/

相关文章:

c# - 使用 ObjectContext 从存储过程中检索多个结果集

c# - 旋转 UILabel 的拉伸(stretch)宽度

regex - Haskell中正则表达式的所有匹配项

mysql - REGEXP MySQL - 几个组,无论哪个顺序

java - 如何从段落中提取字符串?

regex - oracle regex替换(仅保留a-z)

C#将xml属性转换为元素

c# - Bouncy CaSTLe 是否保护内存/页面文件中的 "leaking"和其他攻击途径的 secret ?

c# - 如何订购 List<string>?

Android linkify URL 链接非 URL