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

Oracle中使用REGEXP_SUBSTR提取文件名指定内容遇阻求助

提取文件名中目标字符串的正则解决方案

你的原正则表达式REGEXP_SUBSTR('L8_P0_TOPSIDE12_AA-MPS-K-PCE.JPG', 'TOPSIDE\d+_[.]' )无法得到预期结果,原因是该正则匹配的是TOPSIDE[数字]_.这样的片段,但目标字符串AA-MPS-K-PCE位于TOPSIDE12_之后、.JPG之前,原正则完全没覆盖到这部分内容。

正确的正则写法

针对你的需求,有两种可靠的实现方式:

方式一:精准匹配TOPSIDE后的目标段

利用捕获组提取TOPSIDE\d+_之后、.之前的内容,Oracle中可以指定捕获组序号来获取结果:

REGEXP_SUBSTR('L8_P0_TOPSIDE12_AA-MPS-K-PCE.JPG', 'TOPSIDE\d+_([^.]+)', 1, 1, NULL, 1)
  • 正则解析:
    • TOPSIDE\d+_:匹配固定前缀TOPSIDE+任意数字+下划线
    • ([^.]+):捕获组,匹配所有非.的字符(即目标字符串)
    • 最后一个参数1表示返回第一个捕获组的内容

方式二:匹配最后一组下划线到后缀前的内容

如果文件名格式固定为[前缀]_[目标].[后缀],也可以直接提取最后一个下划线到.之间的内容:

REGEXP_SUBSTR('L8_P0_TOPSIDE12_AA-MPS-K-PCE.JPG', '_(.+)\\.JPG', 1, 1, NULL, 1)
  • 正则解析:
    • _(.+)\\.JPG:匹配下划线+任意字符+.JPG,捕获组提取中间的目标字符串

以上两种写法执行后,都会返回预期的AA-MPS-K-PCE。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 01:33:12