如何从c#中的字符串中删除"\ r \n"?我可以使用regEx吗?

Hca*_*tek 53 c# asp.net string carriage-return

我试图从ASP.NET textarea持久化字符串.我需要去掉回车换行符,然后把剩下的东西分成50个字符的字符串数组.

到目前为止我有这个

var commentTxt = new string[] { };
var cmtTb = GridView1.Rows[rowIndex].FindControl("txtComments") as TextBox;
if (cmtTb != null)
  commentTxt = cmtTb.Text.Length > 50
      ? new[] {cmtTb.Text.Substring(0, 50), cmtTb.Text.Substring(51)}
      : new[] {cmtTb.Text};
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我没有剥离CrLf字符.我该怎么做呢?

谢谢,〜在圣地亚哥

Mat*_*eer 100

你可以使用正则表达式,是的,但一个简单的string.Replace()可能就足够了.

 myString = myString.Replace("\r\n", string.Empty);
Run Code Online (Sandbox Code Playgroud)

  • 更好的可能是`myString.Replace("\ r",string.Empty).Replace("\n",string.Empty);`,因为野外的字符串可以有很多CR/LF排列. (56认同)
  • Environment.NewLine将是服务器对新行的概念.此文本来自客户端,可能会对换行符使用不同的字符.以下是一个答案,显示了不同浏览器用于新行的内容:http://stackoverflow.com/questions/1155678/javascript-string-newline-character/1156388#1156388 (6认同)
  • 在它们之间放一个管道,你可以在一行`myString.Replace("\ r | \n",string.Empty);` (2认同)
  • 抱歉,应该是`Regex.Replace(myString, "\n|\r", String.Empty);` 然后它会一次性替换两者 (2认同)

dim*_*aid 43

.Trim()函数将为您完成所有工作!

我正在尝试上面的代码但是在"修剪"功能之后,我甚至在它到达替换代码之前就注意到它全部"干净"了!

String input:       "This is an example string.\r\n\r\n"
Trim method result: "This is an example string."
Run Code Online (Sandbox Code Playgroud)

资料来源:http: //www.dotnetperls.com/trim

  • -1因为这仅适用于字符串的开头和结尾. (21认同)
  • @SeanMissingham只是因为答案不够,并不意味着这是一个很好的答案. (5认同)
  • @ im1dermike我认为downvote有点不必要,我刚发现并使用它,绝对是我案例的最佳选择 (2认同)

Chr*_*ris 25

这会将字符串拆分为新行字符的任何组合,并将它们与空格连接,假设您确实需要新行所在的空间.

var oldString = "the quick brown\rfox jumped over\nthe box\r\nand landed on some rocks.";
var newString = string.Join(" ", Regex.Split(oldString, @"(?:\r\n|\n|\r)"));
Console.Write(newString);

// prints:
// the quick brown fox jumped over the box and landed on some rocks.
Run Code Online (Sandbox Code Playgroud)


alo*_*onp 23

更好的代码:

yourstring = yourstring.Replace(System.Environment.NewLine, string.Empty);
Run Code Online (Sandbox Code Playgroud)

  • -1:仅当文本是在同一环境中创建时才有效. (10认同)

vib*_*006 6

这是完美的方法:

请注意,Environment.NewLine适用于Microsoft平台。

除了上面的之外,还需要在单独的函数中添加\r\n

以下代码将支持您在Linux、Windows 还是 Mac上键入:

var stringTest = "\r Test\nThe Quick\r\n brown fox";

Console.WriteLine("Original is:");
Console.WriteLine(stringTest);
Console.WriteLine("-------------");

stringTest = stringTest.Trim().Replace("\r", string.Empty);
stringTest = stringTest.Trim().Replace("\n", string.Empty);
stringTest = stringTest.Replace(Environment.NewLine, string.Empty);

Console.WriteLine("Output is : ");
Console.WriteLine(stringTest);
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)