开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

DataWorks 里那个函数 可以实现 正则提取 如何解决?

DataWorks 里那个函数 可以实现 正则提取 比例 字符串’a1b2c3‘ 想提取出来’123'?

展开
收起
真的很搞笑 2024-04-14 16:41:13 93 0
2 条回答
写回答
取消 提交回答
  • MaxCompute文档 https://help.aliyun.com/zh/maxcompute/product-overview/what-is-maxcompute ,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

    2024-04-15 08:33:46
    赞同 1 展开评论 打赏
  • 在DataWorks中,可以使用regexp_extract()函数来实现正则表达式的提取功能。这个函数允许您从给定的字符串中按照指定的正则模式提取特定的子串。其基本语法如下:

    sql
    regexp_extract(string, pattern, index)
    参数说明:

    string: 要进行正则提取操作的原始字符串。
    pattern: 匹配所用的正则表达式。请确保该表达式能够描述您想要提取的子串的特征。
    index: 提取出的匹配组序号。如果正则表达式包含捕获组(用括号包围的部分),index参数指定要提取第几个捕获组的内容。索引从1开始计数。如果pattern没有捕获组,或者您想提取整个匹配的子串(不包括捕获组),可以指定index为0。
    示例:

    假设您有一列名为description的文本数据,其中包含产品型号信息,格式为“Product: [型号]”。您希望提取出型号部分。原始数据如下:

    text

    description

    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

    2024-04-14 17:12:48
    赞同 2 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关产品

  • 大数据开发治理平台 DataWorks
  • 相关电子书

    更多
    DataWorks调度任务迁移最佳实践-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks商业化资源组省钱秘籍-2020飞天大数据平台实战应用第一季 立即下载
    基于DataWorks数据服务构建疫情大屏-2020飞天大数据平台实战应用第一季 立即下载

    相关实验场景

    更多