问题描述
|
我有一个程序,我从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();
}