PostgreSQL取代了unicode字符的范围

时间:2016-03-16 16:30:42

标签: sql regex postgresql unicode replace

我在XML导出中不允许使用字符时出现问题。该请求只是从文本中删除无效字符,以确保数据的导出/导入。

到目前为止,感谢this post我有一个sql语句替换了一个声明的Unicode字符:

UPDATE mytable SET myproperty = replace(myproperty, U&'\UNICODE', '');

它从定义的单元格内的所有实例中删除指定的Unicode。但我想给一堆Unicode字符替换,例如。 0x1 - 0xf 有人知道如何实现这个目标吗?

1 个答案:

答案 0 :(得分:2)

使用TRANSLATE删除多个字符:

TRANSLATE(myproperty, 'list of characters', '');

通常它用于替换字符,但如果替换字符串为空,则将其删除。

编辑:

当然你也可以使用正则表达式,这允许使用字符范围:

regexp_replace(myproperty, '[\u0041-\u0043a]', '', 'g')

添加'g'标志以替换所有出现次数......