因此要将一些属性输出到csv,我使用的是stringbuilder
,它使用逗号作为逗号的自然分隔符。问题是当我在字符串中添加带逗号的字符串时,它会将它拆分为单独的列。所以对于前
temp.Append("ab,cd,ef")
给了我3个单独的列。如何将其作为单个列输出,并且逗号完整。
这是捕获组的结果
match = Regex.Match(amt, "^\"([\\d,]+),(\\d\\d\\d)\"$");
然后我做了
amt = Convert.ToString(match.Groups[1].Value) + Convert.ToString(match.Groups[2].Value);
所以它需要123,123,123,123之类的逗号,并且我想输出完全相同的东西,最后一个逗号被句号替换。但它仍然以
出现123 123 123 123 123
在单独的列中
答案 0 :(得分:7)
您需要将条目包装在引用
中temp.Append("\"ab,cd,ed\"");
重新提出问题后更新
根据您的意见,您希望将123,445,567,890
转换为123,445,567.890
,并希望CSV输出正常工作:
您仍然需要将结果包装在引号中,以便
amt = string.Format("\"{0}.{1}\"", match.Groups[1].Value, match.Groups[2].Value);
或者你可以只替换最后一个','
amt = new Regex(",(?=\\d{3}\"$)").Replace(x,".");
或没有正则表达式。
char[] y = amt.ToCharArray();
y[amt.LastIndexOf(",")] = '.';
amt = string(y);
答案 1 :(得分:0)
Fields with embedded commas must be delimited with double-quote characters.
example: "Anytown, WW" (if it is one field) had to be delimited in double quotes because it had an embedded comma.
看看here