postgres数组的正则表达式

时间:2015-06-03 08:12:50

标签: regex postgresql go

我正在使用不支持postgres数组的ORM,所以我试图做一些黑客来添加“支持”。

目前我必须将postgres数组字符串转换为编程语言数组。

postgres数组字符串表示的示例:

{"bla, bla",bla,"bu bu",bu}

因此,如果有空格,postgres会自动添加引号,如果没有,则元素没有引号。

你会使用什么正则表达式来获取数组?所以结果应该是:

array := []{"bla, bla", "bla", "bu bu", "bu"}

我正在使用Go

数组是一维的,所以类似于: CREATE TABLE test ( something text[] );

1 个答案:

答案 0 :(得分:1)

我不喜欢golang,但使用此搜索正则表达式

(?<=,)(?=[^"](([^"]*"){2})*[^"]*$)|(?<=[^"])(?=,(([^"]*"){2})*[^"]*$)

并将引号替换为引用"

请参阅regex live demo

然后在前面添加"[]"

假设(转义)引号永远不会出现在值中。