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

Hive SQL中如何使用regexp_extract提取以M6开头的目标子串

基于Hive原生regexp_extract实现M6开头子串提取

可以直接使用Hive自带的regexp_extract函数完成该提取需求,无需自定义函数或引入第三方依赖。

实现逻辑

结合你提供的样本数据特征,所有需要提取的M6开头子串,都是以下划线作为前后分隔边界:从M6标识开始,到紧邻的下一个下划线结束,中间没有其他混杂字符。
对应匹配的正则为M6[^_]+,逻辑是:匹配以M6为开头,后续连续出现的所有非下划线字符,刚好覆盖全部需要提取的目标内容。

具体代码写法

假设存储目标字符串的源字段名为biz_str,提取语句为:
regexp_extract(biz_str, 'M6[^_]+', 0) AS extracted_m6_value

样本匹配效果验证

对照给出的4条样本,提取结果完全匹配预期:

  • 源字符串HEY01230328_M6K21SG_UNO_NYC_241 → 提取值M6K21SG
  • 源字符串M6EW2BJ_UNO_NYC_251 → 提取值M6EW2BJ
  • 源字符串M6HW2WL_UNO_NYC_251 → 提取值M6HW2WL
  • 源字符串HEY08460329_NA_M6LAB3D_UNO_NYC_241 → 提取值M6LAB3D

注意事项

  • 当前实现完全适配你给出的样本场景,也就是单条源字符串最多包含1个M6开头的目标子串。如果后续数据场景变化,出现单条字符串存在多个符合要求的M6子串的情况,regexp_extract仅会返回第一个匹配到的内容,要提取全部匹配值的话,需要额外搭配正则拆分逻辑实现,无法单靠该函数完成
  • 如果后续数据格式调整,出现M6子串后不接下划线分隔的情况,需要对应调整正则规则适配新特征,避免出现匹配错位

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 18:57:01