从字符串中删除不需要的字符

时间:2011-04-13 21:25:25

标签: c# rss

我有一个程序,我从RSS文件中获取日期并尝试将其转换为DateTime。不幸的是,我必须使用的RSS文件有很多间距问题。当我解析字符串时,我得到了这个:

"\t\t\n\t\t4/13/2011\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t"

我想删除所有\t\n。到目前为止,这些都失败了:

finalDateString.Trim('\t');
finalDateString.Trim('\n');
finalDateString.Trim();
finalDateString.Replace("\t", "");
finalDateString.Replace("\n", "");
finalDateString.Replace(" ", "");

每个命令都会返回相同的字符串。有什么建议吗?

(在有RSS原因的情况下我标记了RSS)

6 个答案:

答案 0 :(得分:6)

您需要为Replace输出分配原始值。您不需要进行修剪,因为替换将消除所有这些。

finalDateString = finalDateString.Replace("\t", "");
finalDateString = finalDateString.Replace("\n", "");

答案 1 :(得分:1)

首先,您可以使用1个字符的正则表达式从字符串中删除所有空格:

    String finalDateTimeString = "\t\t\n\t\t4/13/2011\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t";
    Regex whitespaceRegex = new Regex("\\s");
    finalDateTimeString = whitespaceRegex.Replace(finalDateTimeString, "");

我刚试过这个,但它确实有效。

其次,我刚测试了你的字符串上的DateTime.Parse(),并且它甚至没有删除空格。所以也许你甚至不必这样做。

    String finalDateTimeString = "\t\t\n\t\t4/13/2011\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t";
    DateTime finalDateTime = DateTime.Parse(finalDateTimeString);
    // finalDateTime.toString() == "4/13/2011 12:00:00 AM"

答案 2 :(得分:0)

我将使用正则表达式

string strRegex = @"([\s])";    
Regex myRegex = new Regex(strRegex);
string strTargetString = @"  4/13/2011    ";
string strReplace = "";

string result = myRegex.Replace(strTargetString, strReplace);

答案 3 :(得分:0)

使用Regex.Replace

string result = Regex.Replace(data,"[\\t,\\n]",""));

答案 4 :(得分:0)

以前发布的所有答案都会删除字符串中的所有空格,但只删除前导和尾随空格会更加健壮。

finalDateTimeString = Regex.Replace(finalDateTimeString, @"^\s+", "");
finalDateTimeString = Regex.Replace(finalDateTimeString, @"\s+$", "");

[我不知道C#,所以我猜其他帖子的语法。更正欢迎。 ]

答案 5 :(得分:0)

    private String stringclear(String str)
    {
        String tuslar = "qwertyuopasdfghjklizxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM._0123456789 :;-+/*@%()[]!\nüÜğĞİışŞçÇöÖ"; // also you can add utf-8 chars
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < str.Length; i++)
        {
            if (tuslar.Contains(str[i].ToString()))  //from tuslar string. non special chars
                sb.Append(str[i]);
            if (str[i] == (char)13) // special char (enter key)
                sb.Append(str[i]);
        }

        return sb.ToString();
    }