【问题标题】:Removing double quotes from CSV but leaving qualifiers (using Notepad++)从 CSV 中删除双引号但保留限定符(使用 Notepad++)
【发布时间】:2021-01-27 22:04:31
【问题描述】:

我有一个逗号分隔的文本文件,其中一列(适当地)包含用双引号括起来的文本。此特定列的内容中也有许多双引号实例。我使用以下内容删除了许多双引号,将它们替换为单引号(不包括逗号旁边的任何双引号)。

(?

如何在不删除“好”双引号的情况下隔离/替换 [fine,] 之后的双引号?

column1,“他做得很好,”汤姆说,但没有具体说明。废话,废话,废话”,第3栏

这是另一个我不想删除的“好”双引号示例(前两列为空白/空)

,,"这是我需要的文字",

【问题讨论】:

  • 如果您想要正确的 CSV,您必须在单元格内添加双引号:column1,"he's doing 'fine,"" Tom 说,但没有具体说明。Blah, blah, blah", column3

标签: csv notepad++ double-quotes


【解决方案1】:

假设双引号仅出现在一列中,那么我建议采用两步法。首先将文件中的所有双引号更改为单引号,使用简单的全部替换。接下来将第一个和最后一个单引号改回双引号。这可以在一个正则表达式中完成,将(^[^\r\n']*)'(.*)'(^[^\r\n']*)$ 替换为\1"\2"\3

如果单引号出现在其他列中并且不应更改 see,则可以使用三步法。选择一个在文本中任何地方都没有出现的字符。将所有双引号更改为该字符,我将使用! 作为示例。如上,将第一个和最后一个! 更改为双引号。这可以在一个正则表达式中完成,将(^[^\r\n']*)!(.*)!(^[^\r\n']*)$ 替换为\1"\2"\3。最后将所有! 更改为单引号。如果找不到未使用的字符,则可以使用文件中没有的较长字符串,例如 _<<abc>>_ 而不是 !

【讨论】:

    【解决方案2】:

    对此有点挣扎,但根据您的问题,可能有一个可能的解决方案。如果您只有一列包含未转义的引号或逗号,您可以计算该列前面的逗号和该列之后的逗号,然后去掉它们之间的所有引号和逗号。如果您有多个包含未转义字符的列,这可能会更难。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      相关资源
      最近更新 更多