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

本文关键字:字符 不需要 删除 字符串 | 更新日期: 2023-09-27 17:50:20

我有一个程序,我从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 's和'n 's。到目前为止,这些都失败了:

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

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

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

需要将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"

我将使用正则表达式

string strRegex = @"(['s])";    
Regex myRegex = new Regex(strRegex);
string strTargetString = @"  4/13/2011    ";
string strReplace = "";
string result = myRegex.Replace(strTargetString, strReplace);

使用正则表达式。替换:

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