用正则表达式替换 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
-
-
-
-