asp.net 在C#中如何从字符串中删除“\r\n”?我可以使用正则表达式吗?

i86rm4rw  于 2023-01-06  发布在  .NET
关注(0)|答案(9)|浏览(364)

我正在尝试从一个ASP.NET文本区域中持久化字符串。我需要去掉回车换行,然后把剩下的字符串分解成一个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};

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

mf98qq94

mf98qq941#

你可以使用正则表达式,但是一个简单的字符串就足够了。

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

v2g6jxz62#

.Trim()函数将为您完成所有工作!
我正在尝试上面的代码,但是在“trim”函数之后,我注意到它甚至在到达替换代码之前就已经“干净”了!

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

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

wfauudbj

wfauudbj3#

这将根据新行字符的任意组合拆分字符串,并使用空格将它们连接起来,假设您确实需要新行所在的空格。

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.
uz75evzq

uz75evzq4#

更好的代码:

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

b5lpy0ml5#

下面是一个完美的方法:
请注意,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();
uqcuzwp8

uqcuzwp86#

试试这个:

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

icomxhvb7#

假设你想用 something 替换换行符,这样就得到了:

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#可用的计算机。

kt06eoxx

kt06eoxx8#

用途:

string json = "{\r\n \"LOINC_NUM\": \"10362-2\",\r\n}";
var result = JObject.Parse(json.Replace(System.Environment.NewLine, string.Empty));
u3r8eeie

u3r8eeie9#

在**"之前使用double******@**以查找\r或\n

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

相关问题