问题描述
我有一个逗号分隔的文本文件,其中的一列(适当地)具有用双引号引起来的文本。在此特定列的内容中也有很多双引号的情况。我已经使用以下内容删除了许多双引号,将它们替换为单引号(不包括逗号旁边的任何双引号)。
(?
如何在[fine,]之后隔离/替换双引号而不删除“好”双引号?
第1列,“他做得很好,”汤姆说,但没有具体说明。等等,等等”,第3列
这是另一个我不想删除的“好”双引号的示例(前两列为空白/空)
,“这是我需要的文字”,
解决方法
假设双引号仅出现在一列中,那么我建议采用两步方法。首先,使用简单的全部替换,将文件中的所有双引号更改为单引号。接下来,将第一个和最后一个单引号更改回双引号。可以在一个正则表达式中完成,将(^[^\r\n']*)'(.*)'(^[^\r\n']*)$
替换为\1"\2"\3
。
如果单引号出现在其他列中,并且不应更改see,则可以使用三步方法。选择文本中任何地方都不会出现的字符。将所有双引号更改为该字符,我将以!
为例。如上所述,将第一个!
和最后一个(^[^\r\n']*)!(.*)!(^[^\r\n']*)$
更改为双引号。可以在一个正则表达式中完成,将\1"\2"\3
替换为!
。最后,将所有_<<abc>>_
更改为单引号。如果找不到未使用的字符,则可以使用文件中没有的更长的字符串,例如!
而不是<div class="form-group date-holder">
<input type="text" readonly placeholder="Date Range" class="date-range-picker form-control" id="chart-date-range-picker" />
</div>
。