【发布时间】:2021-08-08 13:29:04
【问题描述】:
我在 Go 中创建了一个 CSV 文件,我必须在每一列中添加引号(“),我添加了这些,但是这一次,CSV 编程在 comment 中添加了额外的(双)引号 em> 列(如果列中有逗号(,))
我的 CSV
comment_ID","post_ID","product_SKU","comment_author","author_mail","author_location","date","comment"
"100","60574","VID17","Jordi","","","2021-06-02 16:20:30",""My son likes this video, good job""
"101","60574","VID18","Scarlett,"","","2020-12-29 23:06:32",""I don't like this video, it may be better""
我需要这样的CSV(评论栏中没有双引号)
comment_ID","post_ID","product_SKU","comment_author","author_mail","author_location","date","comment"
"100","60574","VID17","Jordi","","","2021-06-02 16:20:30","My son likes this video, good job"
"101","60574","VID18","Scarlett,"","","2020-12-29 23:06:32","I don't like this video, it may be better"
我的 Golang 代码
RegContent := regexp.MustCompile(`",""[A-Za-z0-9]`)
newRegexp := RegContent.ReplaceAllString(CSV_Contents, `","`)
fmt.Println("PLAY: ", newRegexp)
err = ioutil.WriteFile(path, []byte(newRegexp), 0)
if err != nil {
fmt.Println("error: ", err)
}
输出
"son likes this video, good job" //(Missing My)
"don't like this video, it may be better" //(Missing I)
【问题讨论】:
-
您当前和预期的 CSV 文件均无效; oeader 行中的第一列缺少开头的双引号。
-
@Wiktor Stribiże,不,这也替换了 "Scarlett,"","" => "Scarlett,"," 和 "乔迪","","" => "乔迪",", "
-
@Axifive 我明白了,空字段会受到影响。所以,剩下的唯一问题就是评论栏里面有没有
"",怎么处理。 -
您的 CSV 在
,"Scarlett,""上也有问题,它应该在 Scarlett 之后包含一个引号。您是如何生成该 CSV 的?真的很糟糕;如果可能,请重新生成您的 csv,而不是尝试解决此问题。除非你只是在练习。但是我不应该帮助你太多。我只是建议远离正则表达式。