DataWorks 里那个函数 可以实现 正则提取 比例 字符串’a1b2c3‘ 想提取出来’123'?
MaxCompute文档 https://help.aliyun.com/zh/maxcompute/product-overview/what-is-maxcompute ,此回答整理自钉群“DataWorks交流群(答疑@机器人)”
在DataWorks中,可以使用regexp_extract()函数来实现正则表达式的提取功能。这个函数允许您从给定的字符串中按照指定的正则模式提取特定的子串。其基本语法如下:
sql
regexp_extract(string, pattern, index)
参数说明:
string: 要进行正则提取操作的原始字符串。
pattern: 匹配所用的正则表达式。请确保该表达式能够描述您想要提取的子串的特征。
index: 提取出的匹配组序号。如果正则表达式包含捕获组(用括号包围的部分),index参数指定要提取第几个捕获组的内容。索引从1开始计数。如果pattern没有捕获组,或者您想提取整个匹配的子串(不包括捕获组),可以指定index为0。
示例:
假设您有一列名为description的文本数据,其中包含产品型号信息,格式为“Product: [型号]”。您希望提取出型号部分。原始数据如下:
text
Product: ABC123
Product: DEF456
Product: GHI789
要提取型号,可以使用以下regexp_extract()函数:
sql
SELECT
description,
regexp_extract(description, 'Product: (.*)', 1) AS product_model
FROM
your_table;
这里:
pattern为 'Product: (.)',其中 (.) 是一个捕获组,匹配“Product: ”后面的所有字符。
index 为 1,表示提取第一个(也是唯一一个)捕获组的内容。
执行上述查询后,结果将如下所示:
text
description product_model
Product: ABC123 ABC123
Product: DEF456 DEF456
Product: GHI789 GHI789
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。