首页 > 解决方案 > 从 CSV 中删除双引号但保留限定符(使用 Notepad++)

问题描述

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

(?<!^)(?<![,])"(?![,])(?!$)

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

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

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

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

标签: csvnotepad++double-quotes

解决方案


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

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


推荐阅读