1

我的数据包含一个注释字段,该字段由于导出工具错误而充满无效字符,并从 Excel 电子表格 (*.xls) 导入。

该字符在 XML 中出错,表示字符引用“ ”是无效的 XML 字符。

我将如何替换wingdings字符,例如:PostgreSQL中的性别标志、块、符号?

我试图将这些字符复制并粘贴到替换语句或任何与此相关的语句中,但徒劳无功。有没有办法通过 RegExp 替换任何非字母数字或“-=+”类型的字符?任何帮助,将不胜感激。

4

1 回答 1

2
SELECT regexp_replace('123xabcABCxöäüxÖÄÜx¡‘’xæćčx=+-x"§$%&/()x'
                     ,'[^a-zA-Z0-9=+-]','_','g')

结果:

123xabcABCx___x___x___x___x=+-x________x

^角色类中的领先者[^a-zA-Z0-9=+-]否定了它。阅读“不在以下列表中的所有字符”。

注意将-字符放在字符类的末尾(或开头),否则它将具有特殊含义,例如 in a-z

请注意“全局”的第四个参数'g'。没有它,只有第一场比赛会被替换。

还要注意,像这样的字符是如何öäü被替换的。您可能想要也可能不想要……因此,您可能对unaccent提供该unaccent()功能的扩展感兴趣:

unaccent() 函数从给定的字符串中删除重音符号(变音符号)。

此处的手册中有关 PostgreSQL 正则表达式的详细信息。

于 2012-07-20T20:01:07.670 回答