如何从c#中的string中删除“\ r \ n”? 我可以使用regEx吗?

我想从ASP.NET的textarea持久化string。 我需要去掉回车换行,然后把剩下的东西分解成一个由50个字符组成的string数组。

我有这个到目前为止

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}; 

它工作正常,但我不剥离CrLf字符。 我如何正确地做到这一点?

谢谢,〜在圣地亚哥

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

  myString = myString.Replace("\r\n", string.Empty); 

.Trim()函数将为你做所有的工作!

我正在尝试上面的代码,但“修剪”function后,我注意到它的所有“干净”,甚至在它到达replace代码之前!

 String input: "This is an example string.\r\n\r\n" Trim method result: "This is an example string." 

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

这将string拆分为新行字符的任意组合,并将它们与一个空格连接起来,假设您确实需要新行的空间。

 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. 

这个更好的代码:

 yourstring = yourstring.Replace(System.Environment.NewLine, string.Empty); 

假设你想用一些东西代replace行符,例如:

 the quick brown fox\r\n jumped over the lazy dog\r\n 

不会像这样结束:

 the quick brown foxjumped over the lazy dog 

我会做这样的事情:

 string[] SplitIntoChunks(string text, int size) { string[] chunk = new string[(text.Length / size) + 1]; int chunkIdx = 0; for (int offset = 0; offset < text.Length; offset += size) { chunk[chunkIdx++] = text.Substring(offset, size); } return chunk; } string[] GetComments() { var cmtTb = GridView1.Rows[rowIndex].FindControl("txtComments") as TextBox; if (cmtTb == null) { return new string[] {}; } // I assume you don't want to run the text of the two lines together? var text = cmtTb.Text.Replace(Environment.Newline, " "); return SplitIntoChunks(text, 50); } 

如果语法不完美,我很抱歉; 我现在没有可用的C#机器。

尝试这个:

 private void txtEntry_KeyUp(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { string trimText; trimText = this.txtEntry.Text.Replace("\r\n", "").ToString(); this.txtEntry.Text = trimText; btnEnter.PerformClick(); } } 

这是完美的方法

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

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

这是支持您在Linux,Windows或Mac上input的代码

  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();