c# - 删除不属于不同字符串的某些字符串?

标签 c# string

我一直在 Unity 中处理字符串,但目前我不知道该做什么。

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

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

简而言之:如何在不删除/r/n的情况下删除“没有/r/n牛/n级别”中的/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 位的含义

关于c# - 删除不属于不同字符串的某些字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31137994/

相关文章:

c# - 不同语言的 Dynamics CRM 2011 OptionSetValue

c# - 在@字符串中添加双引号

ios - 在 Swift 中将字符串转换为数组 : Time Complexity

c# - 如何使用 x :Object and when?

c# - 找不到 “Error” View ,仅在生产环境中发生,未在test/dev中发生

c# - 编写自动化测试时处理 Try Catch 的最佳实践是什么?

c# - 类似数据库的gridview

ruby - 为什么 Matz 选择在 Ruby 中默认设置可变字符串?

c++ - 在 C++ 中格式化未知长度的字符串

c - 当反向字符串的函数返回地址时,我无法打印元素