C#Regex.Split强制结果不转义字符

Chi*_*era 1 c# regex string escaping

我试图做一些字符串操作,我需要采取多行字符串并List<String>通过拆分创建一个,\r\n以便我最终得到字符串中找到的行列表.

然而,在完成Regex.Split后,我最终得到的每一行都有一个
"转义\.

例如,输入字符串的片段是:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<g2s:g2sMessage xmlns:g2s="http://www.gamingstandards.com/g2s/schemas/v1.0.3">
   <g2s:g2sBody g2s:dateTimeSent="2012-11-06T09:12:38.006-08:00" g2s:egmId="RBG_1234"
                g2s:hostId="1">
      <g2s:communications g2s:commandId="37102" g2s:dateTime="2012-11-06T09:12:38.004-08:00"
                          g2s:deviceId="1"
                          g2s:errorCode="G2S_none"
Run Code Online (Sandbox Code Playgroud)

当我执行以下操作将此字符串拆分为List<String>使用时:

List<string> lines = new List<string>(Regex.Split(message, "\r\n"));
Run Code Online (Sandbox Code Playgroud)

结果是:

<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>
<g2s:g2sMessage xmlns:g2s=\"http://www.gamingstandards.com/g2s/schemas/v1.0.3\">
   <g2s:g2sBody g2s:dateTimeSent=\"2012-11-06T09:12:38.006-08:00\" g2s:egmId=\"RBG_1234\"
            g2s:hostId=\"1\">
      <g2s:communications g2s:commandId=\"37102\" g2s:dateTime=\"2012-11-06T09:12:38.004-08:00\"
            g2s:deviceId=\"1\"
            g2s:errorCode=\"G2S_none\"
Run Code Online (Sandbox Code Playgroud)

如何在不使用已"转义的字符串的情况下执行此操作?
C#是否真的逃避了字符,还是只是调试器显示字符串的方式?

Mar*_*ers 5

这就是字符串在调试器中显示的方式(Visual Studio,我猜?).那些反斜杠不在你的字符串中.您可以通过将字符串输出到控制台或文件,并注意到不显示反斜杠来证明这一点.

视觉工作室