postgresql中如何使用正则表达式去除一个纯文本中的所有html标签?

新手上路,请多包涵

数据库中有一个字段为文章内容,文章内容进行存储的时候会存放一些样式,如<h1><p>标签等等
由于文章内容不多,在搜索相关文章时,直接采用的like匹配,这样,在关键字为1或者p时就会查出带这些标签的文章.
现在想到的解决方法就是,当进行关键字查找时,将文章内容通过正则表达式变成纯文本,再匹配,但是在写正则时遇到了困难
select regexp_replace(content,'/<(\S?)1>.?|<.? />/g','') from document nhds where document_id ='1'
请教一下这里的正则表达式应该如何写呢?
找过这个
image.png
这种效果是我想要的,但是填进去替换的结果并不对,实在不知道怎么写了.


  1. >
阅读 3k
2 个回答

试下这个

SELECT REGEXP_REPLACE(mycolumn, $$<[^<>]+>$$, '') FROM mytable;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题