我有一些管道分隔的数据,如下所示:
field|field|field|field|another "field"|field
field|field|field|"another" field|field|field
field|"fie|ld"|field|field|field|field
我遇到的问题是双引号没有为分隔字段正确形成(包含分隔符或引号的字段本身应该用双引号括起来,并且双引号应该用另一个双引号进行说明。这就是输出应该是:
field|field|field|field|"another ""field"""|field
field|field|field|"""another"" field"|field|field
field|"fie|ld"|field|field|field|field
任何人都知道使用正则表达式是否有一种简单的方法可以做到这一点?
答案 0 :(得分:1)
只有部分操作适用于正则表达式。其他部分更适合常规程序流程。正则表达式仍然是操作的一个组成部分,但尽可能使用内置的字符串操作。
使用PCRE:
"[^"]*"(*SKIP)(*F)|\|
以获取字段列表。(?<!^)"(?!$)
的匹配项,请在引号中包围该字段。(?<!^)"(?!$)
""
。 Regex #1 Test
Regex #2 Test (Stage 1)
Regex #2 Test (Stage 2)