【发布时间】:2020-02-05 10:05:48
【问题描述】:
我在 postgres 模式的表中有以下列。
ID feature start end
EBI-15947845 p.C29S 29 29
EBI-15983374 p.E283C 283 283
EBI-16057637 p.[L44D;A47D;I66D;L67D] 66 66
EBI-16057637 p.[L44D;A47D;I66D;L67D] 47 47
EBI-16057637 p.[L44D;A47D;I66D;L67D] 44 44
EBI-16057637 p.[L44D;A47D;I66D;L67D] 67 67
EBI-2266598 p.D1305_D1306delinsKK 1305 1306
我想转换“特征”列,使条目与开始和结束列的值相匹配。为更清楚起见,以下是转换后我想要的列。
ID feature start end
EBI-15947845 p.C29S 29 29
EBI-15983374 p.E283C 283 283
EBI-16057637 p.I66D 66 66
EBI-16057637 p.A47D 47 47
EBI-16057637 p.L44D 44 44
EBI-16057637 p.L67D 67 67
EBI-2266598 p.D1305_D1306delinsKK 1305 1306
我可以想到一种方法,但无法实施。列值应由 ;然后使用开始/结束值对每个组件应用正则表达式匹配,并在遇到匹配时选择和替换并与 p. 连接。
任何建议都会很有帮助。
谢谢
【问题讨论】:
-
如果
start和end有不同的值怎么办? -
@GMB 它将在决赛桌中保持原样。为了清楚起见,我在表格末尾添加了一行。
标签: regex postgresql split