繁体   English   中英

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

[英]Removing unwanted characters from a string

我有一个程序,我从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)

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

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

首先,您可以使用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"
    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();
    }

我将使用正则表达式

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

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

使用Regex.Replace

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

以前发布的所有答案均会删除字符串中的所有空格,但仅删除开头和结尾的空格会更可靠。

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

[我不了解C#,所以我在猜测其他文章的语法。 欢迎更正。 ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM