所以这里有很多帖子说明我应该使用 Vb.Net TextFiledParser,而不是滚动我自己的 csv 解析器。
我试过了,但是如果我错了,请告诉我,它会根据单个分隔符进行解析。
因此,如果我有一个地址字段“Flat 1, StackOverflow House, London”,我会得到三个字段。不幸的是,这不是我想要的。我需要给定单元格中的所有内容都保留为数组中的单个项目。
所以我开始编写自己的正则表达式,如下所示:
var testString = @"""Test 1st string""" + "," + @"""Flat 1, StackOverflow House, London, England, The Earth""" + "," + "123456";
var matches = Regex.Matches(chars, @"""([^""\\])*?(?:\\.[^""\\]*)*?""");
var numbers = Regex.Matches(chars, @"\d+$");//only numbers
Assert.That(results.Count(), Is.EqualTo(3));
Assert.That(secondMatch.Count, Is.EqualTo(1));
第一个断言失败,因为没有返回字符串“123456”。该表达式仅返回“Test 1st string”和“Flat 1, StackOverflow House, London, England, The Earth”
我想要的是正则表达式返回所有引用\转义和数字。
我不控制数据,但数字字符串将全部被引用\转义,而数字不会。
我真的很感激一些帮助,因为我绕着圈子尝试第三方库,但没有取得多大成功。
不用说 string.split 在地址的情况下不起作用,而且http://www.filehelpers.com/似乎没有考虑这些例子。