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

如何在Athena中使用正则函数提取括号前的字符串

在Athena中用正则函数提取左括号前的内容

针对你的需求,这里提供两种可行的正则函数实现方式:

方法一:使用regexp_extract

通过提取左括号前的匹配分组来获取目标内容,正则采用非贪婪匹配确保只取到第一个左括号之前的部分:

SELECT regexp_extract('iphone-ios-cx 12.45.0(2144)', '^(.*?)\\(', 1) AS result;
  • ^ 匹配字符串起始位置
  • (.*?) 非贪婪匹配任意字符(直到遇到第一个左括号),并将这部分作为捕获分组
  • \\( 匹配字面量的左括号(SQL字符串中需用双反斜杠转义正则里的特殊字符)
  • 最后的1表示提取第一个捕获分组的内容

方法二:使用regexp_replace

将左括号及其之后的所有内容替换为空字符串,直接得到目标结果:

SELECT regexp_replace('iphone-ios-cx 12.45.0(2144)', '\\(.*$', '') AS result;
  • \\( 匹配字面量的左括号
  • .*$ 匹配左括号之后的所有字符直到字符串结尾
  • 替换为空字符串后,剩余部分就是左括号前的内容

补充说明

你之前用regexp_replace结果不正确,大概率是没正确转义左括号(左括号在正则中是特殊字符,必须转义才能匹配字面量),或者使用了贪婪匹配导致范围错误。上述两种写法都能稳定处理示例中的字符串场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:49:55