You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity C#中如何移除字符串里反斜杠后紧跟的换行符?

移除字符串中反斜杠后紧跟的换行符

你的问题出在换行符的实际组成上:在Windows系统中,换行符是\r\n(回车符+换行符),而你代码里用的"\\\n"只匹配了反斜杠加单个换行符,所以无法命中目标内容。以下是两种可行的解决方案:

方案1:使用正则表达式(通用跨平台)

正则可以匹配不同系统下的换行符(\n或\r\n),确保覆盖所有情况:

using System.Text.RegularExpressions; // 需要引入命名空间

public class removeSlash : MonoBehaviour
{
    private string testString = @"374 373 372 \
371 370 369 368 367 366 365 ";
    
    [Button]
    void CleanString()
    {
        string cleaned = Regex.Replace(testString, @"\\\r?\n", "");
        Debug.Log(cleaned);
    }
}

这里的正则表达式@"\\\r?\n"表示:匹配反斜杠(\\),后面可选的回车符(\r?),再加上换行符(\n),匹配到后替换为空字符串。

方案2:替换对应系统的换行组合

如果你确定运行环境的换行符格式,也可以直接替换对应的组合:

  • Windows环境(换行符为\r\n):
    string cleaned = testString.Replace("\\\r\n", "");
    
  • Unix/Linux/macOS环境(换行符为\n):
    string cleaned = testString.Replace("\\\n", "");
    

为什么你的原代码第三行无效?

在Windows下,你定义的逐字字符串中,反斜杠后的换行会被存储为\r\n,所以实际要匹配的是\\\r\n,而不是\\\n,因此原代码的替换无法生效。

内容的提问来源于stack exchange,提问作者arcadeperfect

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 07:10:25