【问题标题】:C# Regex.Split force result to not escape charactersC# Regex.Split 强制结果不转义字符
【发布时间】:2012-11-06 20:01:02
【问题描述】:

我正在尝试进行一些字符串操作,我需要获取多行字符串并通过在\r\n 上拆分来创建List<String>,以便最终得到字符串中找到的行列表。

但是,在执行 Regex.Split 之后,我得到的行中每一个
" 都以 \ 转义。

例如,输入字符串的 sn-p 是:

<?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"

当我使用以下方法将此字符串拆分为List&lt;String&gt; 时:

List<string> lines = new List<string>(Regex.Split(message, "\r\n"));

结果是:

<?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\"

如果不以 " 转义的字符串结束,我该怎么做?
C# 是否真的转义了字符,或者只是调试器显示的方式字符串?

【问题讨论】:

    标签: c# regex string escaping


    【解决方案1】:

    这只是字符串在调试器中显示的方式(我猜是 Visual Studio 吗?)。这些反斜杠实际上并不在您的字符串中。您可以通过将字符串输出到控制台或文件来证明这一点,并注意没有出现反斜杠。

    【讨论】:

      猜你喜欢
      • 2011-06-22
      • 1970-01-01
      • 2015-03-22
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-06
      • 2012-03-29
      相关资源
      最近更新 更多