用空字符串替换变量字符串

时间:2010-10-21 18:56:51

标签: c# string

我有一个xml文件,我正在使用linq-to-XML来读取。 Linq-to-XML保留了换行的换行符和空格。

所以不要像这样的指导:

"FB5417E2-DB15-481d-80D6-D0C4CB26EB1F"

我得到这样的东西:

"\n    FB5417E2-DB15-481d-80D6-D0C4CB26EB1F"

我已尝试使用此方法来帮助弥补这一点:

public static string ValueTrimmed(this XElement element)
{         
    if (element != null)
        // Remove the newlines and spaces
        return element.Value.Replace("\n      ", "");

    return "";
}

问题是这只适用于“\ n”+6个空格。

有没有办法删除“\ n”+任意数量的空格?

注意:我有一些场景,其中“\ n”+ x空格位于值的内部 例如:

TextTextTextTextTextTextText\n     TextTextTextTextTextTextText

5 个答案:

答案 0 :(得分:7)

删除所有换行后跟空格:

return Regex.Replace(element.Value, @"\n\s*", String.Empty);

如果要在行之间保留单个空格:

return Regex.Replace(element.Value, @"\n\s*", " ").Trim();

答案 1 :(得分:4)

您可以尝试使用string.Trim删除所有前导和尾随空格:

return element.Value.Trim();

答案 2 :(得分:3)

使用相应的XDocument创建LoadOptions时,请指定是否保留空白区域,而不是摆弄正则表达式:

保留空白区域

var xdoc1 = XDocument.Parse("<root>\r\n</root>", LoadOptions.PreserveWhitespace);
var xdoc2 = XDocument.Load(@"\path\to\xml", LoadOptions.PreserveWhitespace);

忽略空格:

var xdoc1 = XDocument.Parse("<root>\r\n</root>", LoadOptions.None);
var xdoc2 = XDocument.Load(@"\path\to\xml", LoadOptions.None);

答案 3 :(得分:1)

string result = input
    .Replace("\\n", String.Empty) // replace escaped \n with nothing
    .Trim(); // removing leading (and trailing) spaces

或(尝试,不确定)

string result = input.Trim(new[] { '\n' });

答案 4 :(得分:0)

在这里输入代码如果是你,在外部if中,如果检查“\ n”则返回另一个,如果返回true,则在循环中检查“\”或“n”或“”并替换为“”。< / p>

在伪代码中基本上是这样的......

if (string != null) //check if string is not null
{
    if ((string.indexOf(0) == "\\") && (string.indexOf(1) == "n")) //check if string begins with \n
    {
        for (int i = 0; i < string.length; i++) \\since string begins with "\n" iterate until each character is neither "\", "n", " " and replace each one of those with ""
        {
            if((string.indexOf(i) == "\\") || (string.indexOf(i) == "n") || (string.indexOf(i) == " "))
                string.indexOf(i) = "";
        }

    }
}

不好意思,这可能有点乱,有些语法可能稍微偏离,但是你得到了这个。