PostgreSQL – 替换HTML实体
发布时间:2020-12-13 16:30:43 所属栏目:百科 来源:网络整理
导读:我刚刚开始从我们的数据库中删除HTML实体的任务,因为我们进行了大量的爬行,并且一些爬虫在输入时没有这样做:( 所以我开始编写一堆看起来像的查询; UPDATE nodes SET name=regexp_replace(name,'#xe0;','à','g') WHERE name LIKE '%#xe0%';UPDATE nodes SET
我刚刚开始从我们的数据库中删除HTML实体的任务,因为我们进行了大量的爬行,并且一些爬虫在输入时没有这样做:(
所以我开始编写一堆看起来像的查询; UPDATE nodes SET name=regexp_replace(name,'à','à','g') WHERE name LIKE '%#xe0%'; UPDATE nodes SET name=regexp_replace(name,'á','á','g') WHERE name LIKE '%#xe1%'; UPDATE nodes SET name=regexp_replace(name,'â','a','g') WHERE name LIKE '%#xe2%'; 这显然是一种非常天真的方法.我一直试图弄清楚我能用解码功能做些什么聪明的事情;也许通过正则表达式来抓取html实体,比如/u0026amp; #x(.); /,然后只将%1部分传递给ascii解码器,然后重构字符串……或者其他东西…… 我应该继续查询?可能只有40左右.
使用pl / perlu编写函数并使用此模块
https://metacpan.org/pod/HTML::Entities
当然你需要安装perl和pl / perl. 1) CREATE EXTENSION plperlu; 2)然后创建一个这样的函数: CREATE FUNCTION decode_html_entities(text) RETURNS TEXT AS $$ use HTML::Entities; return decode_entities($_[0]); $$LANGUAGE plperlu; 3)然后你可以像这样使用它: select decode_html_entities('aaabbb&.... asasdasdasd …'); decode_html_entities --------------------------- aaabbb&.... asasdasdasd … (1 row) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |