我有一个模糊的字符串:
foo,bar,c;qual="baz,blurb",d;junk="quux,syzygy"
Run Code Online (Sandbox Code Playgroud)
我想用逗号分割 - 但我需要在引号中忽略逗号.我怎样才能做到这一点?好像正则表达式方法失败了; 我想我可以在看到引号时手动扫描并进入不同的模式,但是使用预先存在的库会更好.(编辑:我想我的意思是已经是JDK的一部分或已经是Apache Commons等常用库的一部分的库.)
上面的字符串应该分成:
foo
bar
c;qual="baz,blurb"
d;junk="quux,syzygy"
Run Code Online (Sandbox Code Playgroud)
注意:这不是CSV文件,它是包含在具有更大整体结构的文件中的单个字符串
任何人都可以推荐一个简单的API,允许我使用读取CSV输入文件,做一些简单的转换,然后写它.
一个快速的谷歌发现http://flatpack.sourceforge.net/看起来很有希望.
我只想在结合这个API之前检查其他人正在使用的内容.
我.Split(',')在字符串上使用该方法,我知道该字符串由逗号分隔,我希望将这些值分开并放入string[]对象中.这适用于这样的字符串:
78,969.82,GW440,.
但是当第二个值超过1000时,值开始看起来不同,就像在这个例子中找到的那样:
79,"1,013.42",GW450,....
这些值来自电子表格控件,我在其中使用内置控件的ExportToCsv(...)方法,并解释了为什么实际数值的格式化版本.
有没有办法可以让.Split(',')方法忽略引号内的逗号?我实际上并不希望将值"1,013.42"拆分为"1和013.42".
有任何想法吗?谢谢!
我真的很想在不使用第三方工具的情况下这样做,因为我的用例实际上并没有涉及除此之外的许多其他情况,即使它是我工作解决方案的一部分,使用这样的工具并没有真正受益此刻的任何人.我希望有一些东西可以快速解决我丢失的这个特殊用例,但现在是周末,我会看到周一我能不能再给这个问题多一次更新了解决方案我最终来了起来.到目前为止,谢谢大家的帮助,我将在星期一进一步评估每个答案.