Big Query - 从 Big Query 中的长字符串中获取连续 7 个字符

问题描述 投票:0回答:1

我需要查找 7 个字符长的字母数字字符串,该字符串应始终采用 NNCCNNN 格式,其中 N 表示数字,C 表示字符,X 表示数字或字符。

例如 - 对于汽车 ID AB-CC-16TG842-ABA3864,ID 应为 16TG842

对于汽车 ID CD-CCIAL_50056956_15AD864,ID 应为 15AD864

对于汽车 ID FG-ENNNNN.OOPPLLI_PLOKI-17,ID 应为空。

我尝试使用 BYTE_LENGTH() 和 regex_extract() 但无法按预期获得它。

有人可以帮忙解决这个棘手的问题吗?

sql mysql google-cloud-platform google-bigquery
1个回答
0
投票

这是解决您的难题的直接解决方案:

with data as (
  SELECT "AB-CC-16TG842-ABA3864" as car UNION ALL
  SELECT "CD-CCIAL_50056956_15AD864" UNION ALL
  SELECT "FG-ENNNNN.OOPPLLI_PLOKI-17"
)
SELECT REGEXP_EXTRACT(car, r"[[:digit:]][[:digit:]][[:alpha:]][[:alpha:]][[:digit:]][[:digit:]][[:digit:]]") as id FROM data

它利用了REGEX_EXTRACT

© www.soinside.com 2019 - 2024. All rights reserved.