You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL提取HTML字符串文本:REGEXP_SUBSTR使用求助

从HTML字符串中提取文本的正确SQL方法

问题分析

你之前使用的regexp_substr(TEXT, '[^>]+',1,2)无法得到正确结果,原因是[^>]+会匹配所有不含>的字符序列,第二个匹配项会包含</font部分(比如ABC 123</font),而非纯文本内容。

解决方案

以下两种方法都可以实现需求,根据你的场景选择:

方法1:通用HTML标签移除(推荐)

使用REGEXP_REPLACE直接移除所有HTML标签,保留纯文本:

SELECT ID, REGEXP_REPLACE(TEXT, '<[^>]+>', '') AS TEXT
FROM TABLE
WHERE TEXT IS NOT NULL;

逻辑说明:<[^>]+>是匹配任意HTML标签的正则(以<开头,后续是任意非>字符,直到>结束),用空字符串替换后即可得到标签包裹的纯文本。

方法2:精准匹配<font>标签内的内容

如果确定字段里只有<font>标签,可以用REGEXP_SUBSTR提取标签内的文本:

SELECT ID, REGEXP_SUBSTR(TEXT, '>([^<]+)<', 1, 1, NULL, 1) AS TEXT
FROM TABLE
WHERE TEXT IS NOT NULL;

逻辑说明:

  • >([^<]+)< 匹配>之后、<之前的内容
  • 最后一个参数1表示提取正则中第一个捕获组([^<]+)的内容,也就是标签内的纯文本

测试结果

用你提供的示例数据测试,两种方法都会输出期望的结果:

ID,TEXT
1,ABC 123
2,1 ETG
3,Gatelys PERC
4,Gml TK 144

内容的提问来源于stack exchange,提问作者goldenbutter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 14:35:01