【问题标题】:stripping extra text qualifier from a CSV从 CSV 中去除额外的文本限定符
【发布时间】:2013-10-29 13:16:43
【问题描述】:

我有一个 CSV,其中某些字段由 " 符号分隔为 TextQualifier。

请参见下面的示例。请注意,每个整数(例如 1、2、3 等)都应该是一个字符串。限定的字符串被 " 符号包围。

1,2,3,"qualifiedString1",4,5,6,7,8,9,10,11,12,13,14,15,16,"qualifiedString2""

注意最后一个合格的字符串是如何将 " 符号作为字符串的一部分的。

您能否提出一种优雅的方法来自动清理 CSV 以消除多余的 " 限定符?

我可以使用以下技术:POSH/BAT 脚本、VBA、Access。

【问题讨论】:

  • " 替换"" 还不够吗?还是我在这里遗漏了什么
  • @mehow - 你是对的。在我意识到 CSV 中有许多空限定字符串的实例后,我删除了原始帖子中的建议。
  • 您能否展示更多该 csv 文件,我不太了解需要删除哪些内容以及需要保留哪些内容。即显示 csv 最初的样子,然后显示 cleaning 后你希望它的样子
  • 我认为从 CSV 添加更多示例文本不会有助于澄清。我只需要找到具有 " 符号作为字符串一部分的合格字符串,然后删除 " 符号。
  • 好的,为什么不将所有内容读入一个变体数组,迭代替换 """ 并将其写回文件?

标签: vba ms-access powershell csv


【解决方案1】:

大概是这样的吧?

(get-content file.txt -ReadCount 0) -replace '([^,]")"','$1' |
 set-content newfile.txt

【讨论】:

  • 谢谢!这行得通!你能指出我在哪里可以了解更多关于这部分脚本的信息吗? '([^,]")"','$1' |
  • 谁能解释一下?我在网上找不到任何东西。
  • 抱歉,我无法立即回复您(工作正在进行中),但我看到您的问题已在另一个线程上得到解答。
  • 感谢您的回复。我还有一个问题要问你。我将如何更改正则表达式中的逻辑以从合格字符串中的随机位置删除额外的“符号?例如,记录是"samp"lerecord"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-23
  • 2013-01-30
  • 1970-01-01
相关资源
最近更新 更多