0

因此,为了将一些属性输出到 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

在单独的列中

4

2 回答 2

7

您需要将条目包含在引号中

temp.Append("\"ab,cd,ed\"");

重新编辑问题后更新

从您所说的您希望转换123,445,567,890123,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);
于 2013-07-15T12:46:48.427 回答
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.

继续看这里

于 2013-07-15T12:50:26.530 回答