无法用string更改单个空格。替换()

时间:2016-04-30 17:01:39

标签: c# regex string replace

我遇到了一个我不明白的问题。我正在读取文件中的数据并遇到一种情况,即文件中的条目string.Replace(" ", "<whatever>")不会替换单个空格的出现。我忍不住觉得有一些我错过的基本内容,因为声称为文字的同一种字符串工作正常。

文件中的典型行(每个条目由制表符分隔):

“2016-feb-08 09:54:00”“2016-feb-08 17:28:00”“短”“227”“5 170,00”“+ 3,90%”“0,00 “

使用File.ReadAllLines().Split(new[] {"\t" }, StringSplitOptions.None);将文件中的数据读入数组。

然后我想清理第五个条目以便进一步处理,这是我遇到问题的时候: entries[4].Replace(" ", string.Empty).Replace("\"", string.Empty);给出“5 170,00” Regex.Replace(entries[4], @"\s+", string.Empty).Replace("\"", string.Empty);给出“5170,00”,这是我要找的结果。

使用单个空格在文字上运行第一个Replace()工作正常,所以我很好奇文件中的字符串内的空格是否有所不同?虽然正则表达式解决方案有效,但我真的想知道我的“问题”是什么。

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码检查角色的十六进制值。普通空间为0x20,该值显示在您发布的代码中的五个和一个之间。

            string input = "2016-feb-08 09:54:00 2016-feb-08 17:28:00 Short 227 5 170,00 +3,90% 0,00";
            byte[] output = Encoding.UTF8.GetBytes(input);