如何在C#中的字符串中的每个“”之间删除逗号','?删除C#中的“”之间的逗号
我有尝试:
string result = Regex.Replace(input,
@",([^""]$)",String.Empty);
,但它不工作...
感谢
如何在C#中的字符串中的每个“”之间删除逗号','?删除C#中的“”之间的逗号
我有尝试:
string result = Regex.Replace(input,
@",([^""]$)",String.Empty);
,但它不工作...
感谢
我的想法是拆分“qu otes“,因此每个不均匀指数元素都是引号之间的东西。 通过这些去,什么也没有更换逗号他们,然后再结合一切一个字符串,应该做的伎俩:
var parts = input.Split('"');
for (var i = 1; i < parts.Length; i += 2)
{
parts[i] = parts[i].Replace(",", "");
}
var result = string.Join("\"", parts);
这是一个不错的诀窍 – 2012-08-06 02:24:05
+1。整洁的事情是,这种方法应该工作在逃脱的CSV引用也是如此,因为引号通过加倍而逃脱(“this”是一个测试。)。 – StriplingWarrior 2012-08-06 02:28:27
@StriplingWarrior非常好!我确实在考虑一个空的“”的情况,但没有想到CSV格式的转义报价效果如何?酷,你指出了它! – SimpleVar 2012-08-06 02:30:24
// extract the fields
Regex CSVParser = new Regex(",(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))");
String[] Fields = CSVParser.Split(Test);
// clean up the fields (remove " and leading spaces)
for (int i = 0; i < Fields.Length; i++)
{
Fields[i] = Fields[i].TrimStart(' ', '"');
Fields[i] = Fields[i].TrimEnd('"');
}
基本上你的正则表达式替换逗号后,除了'“字符'成一个空字符串,所以...? – 2012-08-06 02:02:31
你是什么意思'在每个“”之间?'你的意思是一个字符串文字吗? – 2012-08-06 02:03:42
例如aaaaaa,bbbbb,cccc,“bbbb,aaaa”,aaa,“vv,x”会来:aaaaaa,bbbbb,cccc,“bbbb aaaa”,aaa,“vv x” – Maxime 2012-08-06 02:05:18