python – 在引用的csv中匹配未转义的引号

我查看了几个具有相似标题的Stack Overflow帖子,并且没有一个已接受的答案对我有用.

我有一个CSV文件,其中每个“单元格”的数据都用逗号分隔并引用(包括数字).每行以新行字符结尾.

一些文本“单元格”中有引号,我想使用正则表达式找到它们,以便我可以正确地转义它们.

示例行:

"0","0.23432","234.232342","data here dsfsd hfsdf","3/1/2016",,"etc","E 60"","AD"8"\n

我想只匹配“在E 60”和AD“8,但不是任何其他”.

什么是(最好是Python友好的)正则表达式,我可以用它来做到这一点?

最佳答案 编辑:更新@sundance的正则表达式,以避免开始行和换行.

您可以尝试仅替换逗号,行首或换行旁边的引号:

import re

newline = re.sub(r'(?<!^)(?<!,)"(?!,|$)', '', line)
点赞