c# - 无法识别的转义序列\_。 C# 正则表达式

标签 c# .net regex

我有以下正则表达式,它在 https://regex101.com/ 中工作正常所以我想在 C# 中使用它,但收到错误 Unrecognized escape sequence \_ .

^https:\/\/github\.com\/([a-zA-Z\-0-9]+)\/([a-zA-Z\-\_]+)\/commit\/([a-fA-F0-9]{40}),(.*),([0-9]+),([0-9]+)$

在 C# 中我这样做:

string regex = @"^https:\/\/github\.com\/([a-zA-Z\-0-9]+)\/([a-zA-Z\-\_]+)\/commit\/([a-fA-F0-9]{40}),(.*),([0-9]+),([0-9]+)$";

然后想做:

if (Regex.IsMatch(input, regex)) and so on. the error is here on that line.

我不明白为什么在使用 @ 时会出现错误

最佳答案

您不需要在 C# 正则表达式中转义下划线。该错误来自正则表达式解析器。

您提到它在 regex101.com 上运行正常。也许仔细检查它是否按照您期望的方式处理下划线。

关于c# - 无法识别的转义序列\_。 C# 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48916435/

相关文章:

c# - string.split 但保持顺序匹配

c# - 如何为不是从 MarshalByRefObject 派生的远程对象创建代理?

c# - Element .net MAUI 的宽度和高度始终为 NaN

c# - 正则表达式在测试器中有效,但在我的代码中无效

regex - 帮助 Vim 中的反向引用正则表达式

c# - 使用附加的超链接查找工作项

c# - MVC 字符串值保存 Javascript 代码,但 Js 无法识别引号

c# - ServiceStack JsonServiceClient,强制本地主机的网络流量?

.net - NUnit 文本输出不正常

javascript - 如何在 JavaScript 中使用正则表达式验证文件扩展名