Regex 记事本++正则表达式替换CSV中带引号列之间的引号

Regex 记事本++正则表达式替换CSV中带引号列之间的引号,regex,csv,notepad++,Regex,Csv,Notepad++,我有一个逗号分隔的CSV文件,其中有3个带引号的列,如下所示: 这是很好的数据 某些行在第二列中有额外的引号: 这是糟糕的数据 这是非常糟糕的数据 这个站点有一个RegEx字符串来选择标记之间的文本,在本例中,我只想替换标记之间的任何引号字符,而不是整个字符串。理想情况下,我只会选择那些有不恰当引号的行 选择整个第二列的正则表达式: ,.+ 仅选择错误引号或带有错误引号的行的正则表达式: 非常感谢您的帮助。谢谢 理想情况下,我只会选择那些有不恰当引号的行 要用空字符串替换不匹配的引号,请使用下

我有一个逗号分隔的CSV文件,其中有3个带引号的列,如下所示:

这是很好的数据

某些行在第二列中有额外的引号:

这是糟糕的数据

这是非常糟糕的数据

这个站点有一个RegEx字符串来选择标记之间的文本,在本例中,我只想替换标记之间的任何引号字符,而不是整个字符串。理想情况下,我只会选择那些有不恰当引号的行

选择整个第二列的正则表达式:

,.+

仅选择错误引号或带有错误引号的行的正则表达式:

非常感谢您的帮助。谢谢

理想情况下,我只会选择那些有不恰当引号的行

要用空字符串替换不匹配的引号,请使用下面的正则表达式

([^,\n])"([^,\n])
然后将匹配的字符替换为\1\2

使用以下命令运行匹配:/[\w]?![,\n]/g

并以:$1'

将所有有问题的双引号替换为单引号,生成:

"this","is 'bad","data"
"this","is 'really' bad","data"

这里的演示:感谢Avinash Raj找到了演示网站

假设格式与发布的方式完全一致,我会这样做:

[].*?

试试这个:它在记事本++中测试,适用于您的所有情况:

按[^,\n\r\t]+[^,\n\r\t]搜索并替换为@Avinash Raj的$1$2 idea

更新下一个要求,包括注释

按^ |,|$|搜索并替换为$1


谢谢。如果我在保留所有其他文本的同时,将引号替换为空/null,正则表达式会是一样的吗?我应该用什么来查找和替换?您的输入只包含单词字符吗?ie,您的输入是否包含字母、数字、空格、逗号或双引号以外的字符?再次感谢。是否有一种方法可以替换,标记之间的所有引号?如果有这样的额外报价:这真的很糟糕,数据有可能全部替换吗?谢谢!这会选择示例中的引号。如果要选择这两个标记之间的所有引号,该怎么办?我在演示中放了这个:这是非常糟糕的数据幸运的是,前两列始终具有相同的语法。这几乎可以完美地工作。有没有办法处理中间列中逗号前可能有引号的边缘情况,例如:这是非常糟糕的数据?好的引号总是在两边用逗号括起来。嗨,阿霍桑,上面的评论有意义吗?是否可以在标记对之间替换引号?最后一个问题是^ |,|$|能否将引号替换为空白/空字符?
"this","is 'bad","data"
"this","is 'really' bad","data"