You need to enable JavaScript to run this app. Oracle中regexp_substr提取URL参数丢失&X内容如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Oracle中regexp_substr提取URL参数丢失&X内容如何解决

注意:以下内容针对Oracle数据库,与MySQL存在一定差异,请注意区分。

问题原因

你当前使用的[^=]+匹配规则逻辑为匹配所有非=的连续字符,理论上可捕获两个=之间的全部内容,出现&符号缺失大概率是字符串转义解析导致的匹配异常,改用明确的捕获组写法可以稳定规避该问题。

调整后SQL语句

select regexp_substr(
'https://domain/l202108091338.csv.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAQ6R%2F20210820%2Fca-central-1%2Fs3%2Faws4_request&X-Amz-Date=20210820T223109Z&X-Amz-Expires=300&X-Amz-Signature=bd3d40250afdc751c67c58302a2ca152c7&X-Amz-SignedHeaders=host',
'=([^=]+)=',
1,
1,
null,
1
) from dual;

代码说明

  • 正则规则=([^=]+)=明确匹配前后被=包裹的连续字符,避免匹配范围偏移
  • 最后一个参数1表示返回正则中第一个捕获组(即括号内匹配到的内容),直接输出两个=之间的完整片段,会完整保留&相关符号,和你预期的输出结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 17:24:03