我有一个程序,我从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)
答案 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)
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();
}