我的 postgres 表中有以下格式的数据:
create table t (col1 character varying, col2 character varying, col3 character varying);
col1 col2 col3
<a> <b> <c> .
<d> owl:g <h> .
dbp:h1 <k> <l> .
我需要用http://yago-knowledge.org/resource/VARIABLE 和
owl: <http://www.w3.org/2002/07/owl#VARIABLE>
dbp: <http://dbpedia.org/ontology/VARIABLE>
我知道可以在 python 中使用 re.sub(r"<(.*?)>", r"http://yago-knowledge.org/resource/\1", col)
我转换后的数据如下所示:
<http://yago-knowledge.org/resource/a> <http://yago-knowledge.org/resource/b> <http://yago-knowledge.org/resource/c>
<http://yago-knowledge.org/resource/d> <http://www.w3.org/2002/07/g> <http://yago-knowledge.org/resource/h>
<http://dbpedia.org/ontology/h1> <http://yago-knowledge.org/resource/k> <http://yago-knowledge.org/resource/l>
是否可以在 postgres 中使用 SQL 来实现相同的目标?在 col3 中,每个值后面都有一个点,是否可以使用 SQL 消除该点
编辑:我使用正则表达式尝试了以下操作:
regexp_replace('<a>', '.[<a]a.', '<http://yago-knowledge.org/resource/')
但是,它似乎不起作用。谁能指出我哪里出错了。