我又一次被困在试图以我需要的格式获取我的数据。我有一个文本字段,看起来像这样。
“迪安杰洛001迪安杰洛
本地名称来源:意大利人
来自美国名字Deangelo
含义:天使的
他是所有人的欢乐源泉。
个人诚信·他的好名声是他最宝贵的资产。个性·当你被火鸡包围时,很难像鹰一样翱翔!关系·开始得很慢,但与deangelo的关系会随着时间的推移而建立。旅行&休闲·一生一次的旅行就在他的未来。
事业与金钱作为一个有天赋的孩子,迪安杰洛需要不断地接受挑战。
生命的机遇、欢乐和幸福等待着这位受祝福的人。
Deangelo的幸运数字十二时三十八分十八时三十四分二十九时十六分
“
在Postgresql中删除回车和换行符的最佳方法是什么?我尝试了几种方法,但都不想执行。
select regexp_replace(field, E'\r\c', ' ', 'g') from mytable
WHERE id = 5520805582
SELECT regexp_replace(field, E'[^\(\)\&\/,;\*\:.\>\<[:space:]a-zA-Z0-9-]', ' ')
FROM mytable
WHERE field~ E'[^\(\)\&\/,;\*\:.\<\>[:space:]a-zA-Z0-9-]'
AND id = 5520805582;
4条答案
按热度按时间gmxoilav1#
阅读手册http://www.postgresql.org/docs/current/static/functions-matching.html
watbbzwu2#
我在我的postgres d/b中遇到了同样的问题,但是有问题的换行符不是传统的ascii CRLF,它是一个unicode行分隔符,字符U2028。
u4dcyp6a3#
OP特别询问了正则表达式,因为它看起来像换行符一样关注其他一些字符,但是对于那些 * 只是 * 想要去掉换行符的人,你甚至不需要去正则表达式,你可以简单地做:
我认为这是一个SQL标准行为,所以它应该扩展到所有的Postgres版本,但可能是最早的版本。
ekqde3dh4#
如果需要从字符串的开始或结尾删除换行符,可以使用以下命令:
请记住,帽子**
^
表示字符串的开始,美元符号$
**表示字符串的结束。希望能帮上忙。