Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 删除不属于其他字符串的特定字符串?_C#_String - Fatal编程技术网

C# 删除不属于其他字符串的特定字符串?

C# 删除不属于其他字符串的特定字符串?,c#,string,C#,String,我一直在团结中与弦搏斗,但现在,我不知道该怎么办 问题是,Unity在新行中只使用/n,而大多数要放在db中的文本都使用/r/n。如果在不接触它们的情况下进行操作,则不会有太多问题,但如果我删除一个换行符并将两个字符串合并为一行,则/r始终保留在那里 通常情况下,这不会导致任何问题,因为它们将被简单地忽略,但是,我尝试在其文本中添加一些特性 简言之:如何删除/n和/r中的/r no/r/n cow/n级别而不删除/r/n?假设您提到新行后实际上在谈论\r和\n 捷径 如果字符串中没有\/r\/n

我一直在团结中与弦搏斗,但现在,我不知道该怎么办

问题是,Unity在新行中只使用/n,而大多数要放在db中的文本都使用/r/n。如果在不接触它们的情况下进行操作,则不会有太多问题,但如果我删除一个换行符并将两个字符串合并为一行,则/r始终保留在那里

通常情况下,这不会导致任何问题,因为它们将被简单地忽略,但是,我尝试在其文本中添加一些特性


简言之:如何删除/n和/r中的/r no/r/n cow/n级别而不删除/r/n?

假设您提到新行后实际上在谈论\r和\n

捷径

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

正则表达式还是安全方法


在模式正则表达式中,[^\r]和[^\n]是用括号捕获的,您可以在replace中重用此捕获,这就是这些$1位的含义,假设您在提到新行后实际上在谈论\r和\n

捷径

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

正则表达式还是安全方法


在模式正则表达式中,[^\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。

正则表达式替换将帮助您

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。

regex如何选择并替换所有不在\r后面的\r?当我删除新行并将两个字符串合并为一行时,为什么不先删除/r?@Andrei Well,我不能这样做,因为我需要在运行时或至少在编辑器中修复设置文本的字符串。正如我上面解释的,在Unity的inspector文本中执行简单的退格操作不会删除\r,因为它会被忽略。正则表达式如何选择并替换所有不后跟\n的\r?当我删除一个换行符并将两个字符串合并到Unity中的一行时,为什么不首先删除/r?@Andrei Well,我不能这样做,因为我需要在运行时或至少在编辑器中修复设置文本的字符串。正如我在上面解释的,在Unity的inspector文本中执行简单的退格操作不会删除\r,因为它会被忽略。第一种方法假设/r/n永远无效,只要该假设是正确的,这将起作用,并且很可能是正确的faster@Kevin是的,没错。。。我应该重命名这些部分:快速方式vs.安全方式噢,我很久以前就养成了一个习惯,它让我一直在写/n而不是\n。对不起,无论如何,谢谢。我真的需要在Regex上做一些工作。第一种方法假设/r/n永远都是无效的,只要这个假设是正确的,它就可以工作,而且可能是有效的faster@Kevin是的,没错。。。我应该重命名这些部分:快速方式vs.安全方式噢,我很久以前就养成了一个习惯,它让我一直在写/n而不是\n。对不起,无论如何,谢谢。我真的需要在正则表达式上做一些工作。
var input = "there is/r no/r/n cow/n level";
var result = Regex.Replace(input, @"(?<!(/n)|(/r))((/n)|(/r))(?!(/n)|(/r))", String.Empty);