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

Regex 用于获取字符内字符串的正则表达式,第一个字符集在Presto/Athena中是可选的,regex,presto,amazon-athena,Regex,Presto,Amazon Athena,我整天都在忙这个。我让它在各种在线正则表达式工具中工作,但每当我在查询中使用它时,结果都是错误的 我的数据库中有如下数据: 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 我尝试了许多变体,它们都可以在线使用: 非捕获组:

我整天都在忙这个。我让它在各种在线正则表达式工具中工作,但每当我在查询中使用它时,结果都是错误的

我的数据库中有如下数据:

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\/)?(.*(?=\^^^$)

  • 向后看:
    (?我会在这里使用
    REGEXP\u REPLACE

    regexp\u replace([列],“^(?:[^/]*/)?([^^^]*)\^.*,“$1”)
    

    详情:

    • ^
      -字符串的开头
    • (?:[^/]*/)?
      -一个可选序列,匹配除
      /
      /
      字符之外的任何零个或多个字符
    • ([^^]*)
      -捕获组1(从替换模式中引用为
      $1
      ):除
      ^
      之外的任何零个或多个字符
    • \^
      -文字
      ^
      字符
    • *
      -字符串的剩余部分结束

    您正在使用Presto吗?
    REGEXP\u REPLACE
    ?这就成功了。谢谢!!