删除不属于不同字符串的某些字符串

本文关键字:字符串 不属于 删除 | 更新日期: 2023-09-27 18:00:38

我一直在 Unity 中与字符串搏斗,但目前,我不知道该怎么办。

问题是,Unity 仅使用/n 作为新行,而大多数将要放置在数据库中的文本都使用/r/n。如果在不接触它们的情况下完成事情,就不会有太大麻烦,但是如果我在 Unity 中删除换行符并将两个字符串合并为一行,/r 总是留在那里。

通常,这不会引起任何问题,因为它们会被简单地忽略,但是,我正在尝试在其文本中添加一些功能。

简而言之:如何在不删除/r/n 的情况下删除"有/r no/r/n cow/n level"中的/n 和/r?

删除不属于不同字符串的某些字符串

(假设你实际上是在谈论'r'n,因为你提到了"新行"(

简单(或快速(的方法

s.Replace("'r'n", @"'/r'/n").Replace("'r","").Replace("'n","").Replace(@"'/r'/n","'r'n")

如果您的字符串中没有"'/r'/n",这将起作用,这可能是真的

正则表达式(或安全(方式

s = Regex.Replace(s, "'r([^'n])", "$1");
s = Regex.Replace(s, "([^'r])'n", "$1");

在模式正则表达式中,[^'r][^'n]是用括号( )捕获的,您可以在替换中重用此捕获,这就是这些$1位的含义

正则表达式替换将为您提供帮助

var input = "there is/r no/r/n cow/n level";
var result = Regex.Replace(input, @"(?<!(/n)|(/r))((/n)|(/r))(?!(/n)|(/r))", String.Empty);

这表示匹配任何没有/r 或/n 前面或后面没有/r 或/n 的/r 或/n。