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

Oracle如何编写正则表达式提取字符串中kV/KV标识前的数字

从device_name字段提取kV前数字的正则实现方案

核心正则规则

使用正则 (\d+)\s*[kK]V 即可满足需求,各部分含义:

  • (\d+):捕获组,匹配1个及以上连续数字,为最终需要提取的目标值
  • \s*:匹配数字与kV/KV标识之间0个或多个空白字符,兼容有无空格的场景
  • [kK]V:同时匹配大小写的kV标识

不同SQL方言的实现示例

MySQL 8.0+

SELECT REGEXP_SUBSTR(device_name, '(\\d+)\\s*[kK]V', 1, 1, 'c', 1) AS kv_value FROM 你的业务表名;

最后一个参数1代表取正则中第一个捕获组的内容。

PostgreSQL

SELECT substring(device_name FROM '(\d+)\s*[kK]V') AS kv_value FROM 你的业务表名;

Hive/Spark SQL

SELECT regexp_extract(device_name, '(\\d+)\\s*[kK]V', 1) AS kv_value FROM 你的业务表名;

匹配效果验证

针对你给出的三个测试样例,均可正确提取目标值:

  • 样例1 15518 - 132 Garden Plain 138 kV l/o 0405 → 提取结果138
  • 样例2 ALLENIM 345 KV ALL-RPM_I. → 提取结果345
  • 样例3 179 BLOO345 KV TR84CT-P_I. → 提取结果345

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:54:03