gpt4 book ai didi

用于在字符内获取字符串的正则表达式,Presto/Athena 中的第一个字符集是可选的

转载 作者:行者123 更新时间:2023-12-04 08:00:52 32 4
gpt4 key购买 nike

我整天都在为这个问题绞尽脑汁。我让它在各种在线正则表达式工具中工作,但每当我在查询中使用它时,结果都是错误的。
我的数据库中有这样的数据:

AMAZON PAYMENTS EUROPE S.C.A.
1/asdfL GE#EFRDA^9212 GRIFF
Frau HUSEL G^9212 GRIFF
我想提取 1/ 中的文本和 ^当他们在场时。像这样:
AMAZON PAYMENTS EUROPE S.C.A.
asdfL GE#EFRDA
Frau HUSEL G
我尝试了很多变体,它们都在线工作:
  • 非捕获组:^(?:1\/)?(.*?(?=\^|$))
  • 后视:(?<=1\/)(.*?(?=\^|$))
  • 条件表达式:(?(?=^1)1/(.*?(?=\^|$))|((^.*?(?=\^|$))))

  • 但是当我在 AWS 中运行查询时,我总是得到 1/回到摘录。
    任何人都知道如何解决这个问题?

    最佳答案

    我会用 REGEXP_REPLACE这里:

    regexp_replace([column], '^(?:[^/]*/)?([^^]*)\^.*', '$1')
    regex demo .
    细节:
  • ^ - 字符串开头
  • (?:[^/]*/)? - 匹配除 / 之外的任何零个或多个字符的可选序列然后是 /字符
  • ([^^]*) - 捕获组 1(从带有 $1 的替换模式中引用):除 ^ 之外的任何零个或多个字符
  • \^ - 文字 ^字符
  • .* - 字符串的其余部分到最后。
  • 关于用于在字符内获取字符串的正则表达式,Presto/Athena 中的第一个字符集是可选的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66479966/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com