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

问题描述

| 我有一个程序,我从RSS文件获取日期,然后尝试将其转换为“ 0”。不幸的是,我必须使用的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)     

解决方法

首先,您可以使用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,\"\");
我刚刚对此进行了测试,并且它起作用了。 其次,我刚刚测试了在您的字符串上调用and6ѭ的情况,并且即使不删除空格也能正常工作。因此,也许您甚至不必这样做。
    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\"
    ,您需要为“ 8”输出分配原始值。您也不需要修剪,因为替换将消除所有修剪。
finalDateString = finalDateString.Replace(\"\\t\",\"\");
finalDateString = finalDateString.Replace(\"\\n\",\"\");
    ,我将使用正则表达式
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#,所以我在猜测其他文章的语法。欢迎更正。 ]     ,
    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();
    }