【发布时间】:2020-11-11 07:22:26
【问题描述】:
我对转义字符有点问题是我从 txt 文件中读取的字符串, 它们稍后在我的程序中导致错误,需要将它们删除,但我似乎无法将它们过滤掉
public static List<string> loadData(string type)
{
List<string> dataList = new List<string>();
try
{
string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Data");
string text = File.ReadAllText(path + type);
string[] dataArray = text.Split(',');
foreach (var data in dataArray)
{
string dataUnescaped = Regex.Unescape(data);
if (!string.IsNullOrEmpty(dataUnescaped) && (!dataUnescaped.Contains(@"\r") || (!dataUnescaped.Contains(@"\n"))))
{
dataList.Add(data);
}
}
return dataList;
}
catch(Exception e)
{
Console.WriteLine(e);
return dataList;
}
}
我试过 text.Replace(@"\r\n") 和一个 if 语句,但我似乎无法从我的字符串中删除它们
任何想法将不胜感激
【问题讨论】:
-
删除 @,因为 @ 意味着您希望 \ 是一个字符的意思,而不是与 n 组合并搜索换行符,它将改为搜索字符串中任何出现的 \n。这可能就是为什么 replace 函数和 if 没有按照您的预期做的原因。