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

Presto SQL:如何提取abc_后的所有目标子字符串?

解决方法

你之前的正则因为贪婪匹配和缺少单词边界限制,导致提取了第一个abc_后的所有内容。要实现只提取每个独立abc_前缀后的数字,用下面的正则:

正确的正则表达式

REGEXP_EXTRACT_ALL(v, '\babc_(\d+)\b')

模式说明:

  • \b:单词边界,保证abc_是一个独立单词的开头,不会和其他字符连在一起
  • abc_:匹配固定前缀
  • (\d+):捕获一个或多个数字,这就是要提取的目标值
  • \b:单词边界,确保数字是当前单词的结尾,不会包含后续的空格或其他字符

验证结果

输入字符串 "abc_11234 abc_11235 xyz78763 abc_32342" 使用该正则后,返回结果就是你需要的 [11234, 11235, 32342]。

之前的abc_\s*(.+)问题在于.+是贪婪匹配,会一直匹配到字符串末尾,而且没有限制单词范围,所以会把第一个abc_之后的所有内容都抓进来,包括后面的空格和其他单词。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:02:05