我的数据包含一个注释字段,该字段由于导出工具错误而充满无效字符,并且是从excel电子表格(*.xls)导入的。
该字符在XML中出错,表示字符引用""是无效的XML字符。
我该如何在PostgreSQL中替换wingdings字符,例如:性别符号、块、符号?
我试图将这些字符复制并粘贴到替换语句中,或者任何与此相关的内容中,但都是徒劳的。有没有办法通过RegExp来替换任何非字母数字或"-=+"类型的字符?如有任何帮助,我们将不胜感激。
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=+-]
中的前导^
否定它。读取"以下列表中的所有字符而非"。
注意将-
字符放在字符类的末尾(或开头),否则它将具有类似于a-z
的特殊含义。
注意第4个参数'g'
表示"全局"。如果没有它,只有第一场比赛会被替换。
还要注意,像öäü
这样的字符也是如何被替换的。你可能想要也可能不想要。。。因此,您可能对提供unaccent()
功能的unaccent
扩展感兴趣:
函数的作用是从给定的一串
有关PostgreSQL正则表达式的详细信息,请参阅此处的手册。