我正在使用不支持postgres数组的ORM,所以我试图做一些黑客来添加“支持”。
目前我必须将postgres数组字符串转换为编程语言数组。
postgres数组字符串表示的示例:
{"bla, bla",bla,"bu bu",bu}
因此,如果有空格,postgres会自动添加引号,如果没有,则元素没有引号。
你会使用什么正则表达式来获取数组?所以结果应该是:
array := []{"bla, bla", "bla", "bu bu", "bu"}
我正在使用Go
。
数组是一维的,所以类似于:
CREATE TABLE test (
something text[]
);
答案 0 :(得分:1)
我不喜欢golang,但使用此搜索正则表达式
(?<=,)(?=[^"](([^"]*"){2})*[^"]*$)|(?<=[^"])(?=,(([^"]*"){2})*[^"]*$)
并将引号替换为引用"
。
请参阅regex live demo。
然后在前面添加"[]"
。
假设(转义)引号永远不会出现在值中。