用正则表达式替换 CSV 中引号之间的逗号

问题描述:

例如,我们有一个这样的字符串:

We have for example a string like this:

"COURSE",247,"28/4/2016 12:53 Europe/Brussels",1,"Verschil tussen merk, product en leveranciersverantwoordelijke NL","Active Enro"

目标是替换merk, product"之间的逗号,并保留,"和, & ,"这样的逗号,以便我们可以正确拆分文件.

The Goal is to replace the comma between "merk, product" and to keep the comma like "," and ", & ," so we can split the file correctly.

有什么建议吗?

亲切的问候

首先,你应该检查 了解 CSV 文件及其在 ABAP 中的处理 文章.

First of all, you should check Understanding CSV files and their handling in ABAP article.

对于一次性工作,您可以使用此正则表达式(但请注意,对于较长的字符串,可能效果不佳,将其用作最后的手段):

For a one-time job, you can use this regex (but note that with longer strings, it may not work well, use it as a means of last resort):

,(?!(?:[^"]*"[^"]*")*[^"]*$)

查看正则表达式演示

模式详情:

  • , - 一个逗号...
  • (?! - 后面没有......
    • (?: -
      • [^"]* - 除 "
      • 之外的零个或多个字符
      • " - 双引号
      • [^"]*" - 见上
      • , - a comma that...
      • (?! - is not followed with....
        • (?: -
          • [^"]* - zero or more chars other than "
          • " - a double quote
          • [^"]*" - see above