Regex 用记事本中的正则表达式替换引号中的所有逗号++;

Regex 用记事本中的正则表达式替换引号中的所有逗号++;,regex,notepad++,Regex,Notepad++,我试图替换notepad++中引号之间的字符串中的所有逗号 我差一点就到了,但还没到。目前,它只是取代了第一个逗号 为了总结这篇文章,它使用了Find What:(“[^”,]+),([^”]+”替换:\1\2(我改为\1~\2) 在正则表达式中是否有方法捕获引号之间逗号的所有实例 编辑:添加几个具有代表性的字符串: 1,G 32,170696,01/06/2015,Jun-17,"M12 X 1,50 - 4H GO SRG",P U7,,,,SRG ,"G 32_170696_06-2017

我试图替换notepad++中引号之间的字符串中的所有逗号

我差一点就到了,但还没到。目前,它只是取代了第一个逗号

为了总结这篇文章,它使用了Find What:
(“[^”,]+),([^”]+”
替换:
\1\2
(我改为
\1~\2

在正则表达式中是否有方法捕获引号之间逗号的所有实例

编辑:添加几个具有代表性的字符串:

1,G 32,170696,01/06/2015,Jun-17,"M12 X 1,50 - 4H GO SRG",P U7,,,,SRG ,"G 32_170696_06-2017_M12 X 1,50 - 4H GO SRG_P U7.pdf"
3,13247,163090,01/11/2015,Nov-17,"PG 0,251 to 0,500 inch",P U7,,,,,"13247_163090_11-2017_PPG 0,251 to 0,500 inch_P U7.pdf"
9,PI 1496,182411,01/04/2015,Apr-17,"6,000 - 6,018mm GO-NOGO  PPG",,,,,PPG,"PI 1496_182411_04-2017_6,000 - 6,018mm GO-NOGO  PPG.pdf"

您可以使用以下模式一次性完成:

(?:\G(?!^)|([^"]*(?:"[^,"]*"[^"]*)*"))[^",]*\K,([^",]*+(?:"(?1)|$))?
使用此替换:
~\2

详情:

(?:
    \G(?!^) # contiguous to a previous match
  | # OR
    ([^"]*(?:"[^,"]*"[^"]*)*") # capture group 1: first match
                               # reach the first quoted part with commas
)
[^",]* \K ,  #"#
( # capture group 2: succeeds after the last comma
    [^",]*+  #"#
    (?:
        " (?1) #"# reach the next quoted part with commas
               # (using the capture group 1 subpattern)
      | # OR
        $ # end of the string: (this set a default behavior: when
          # the closing quote is missing)
    )
)?

您只需多次单击“全部替换”,直到没有匹配项为止。@WiktorStribiżew:如果这样做,您还将替换引号外的逗号。您应该在问题中添加一个具有代表性的示例字符串。也试着把你的问题格式化得更好,看:哇,很好的正则表达式。它似乎在最后一个“虽然”之后去掉了逗号。至少对我来说。我有点难以理解,所以我自己也没能解决它。我测试了以下数据:123 |“测试,测试,测试”,456789,“一,二”246 |“测试,测试,测试”,456789,一