Regex在.NET中返回转义匹配 - 为什么?

ske*_*ker 2 .net c# regex escaping

正如您在屏幕截图中看到的那样,捕获捕获正确的值Boton \"Reservar \",但该属性似乎不可用.返回该值但转义,这不是我需要的.这是.NET的正常行为吗?通常情况下,Value显示与对象字符串相同的值,但这次它被转义.

此外,正如您在立即窗口中看到的,capture.ToString()和甚至显示转义的值.

更糟糕的是,Value包含在引号中,这不是正则表达式应该匹配的.

我已经尝试将捕获转换Group并再次调用capture.Captures以查看真实匹配是否隐藏在更深层的组中,但事实并非如此.

有任何想法吗?

在此输入图像描述

car*_*ira 7

内存中的字符串是正确的 - 它只是在即时/监视/本地窗口中的表示被转义.我不知道为什么来自Visual Studio的人决定这样做,但一个可能的解释是你可以按原样复制该字符串并粘贴到你的代码中:

var match = "Botón \\\"Reservar\\\"";
Run Code Online (Sandbox Code Playgroud)

它将具有捕获的实际价值.如果单击"值"属性值旁边的放大镜,您将看到没有转义的字符串.