如何修复正则表达式捕获组错误 Bigquery?

How to Fix regular expression capturing group error Bigquery?

我正在尝试将代码从 SQL 服务器移动到 Bigquery,但我在处理 SELECT 语句中的某些列时遇到问题:

SELECT
       CAST(regexp_extract(local_chores, '([^&]+)&([^&]+)&.*', 1) as string) as origin_place_code,
      CAST(regexp_extract(local_chores, '([^&]+)&([^&]+)&.*', 2) as string) as origin_equipment_code,

我得到一个错误:传递给提取函数的正则表达式不能有超过 1 个捕获组

我尝试修改我的代码,但未能修复错误。有没有人深入了解这个问题?

REGEXP_EXTRACT函数需要从文本中提取一个捕获组。

您的正则表达式中有两个捕获组。

您可能想用 https://regexr.com/

检查表达式

试试这个:

SELECT REGEXP_EXTRACT(local_chores, r'([^&]+)&[^&]+&.*') AS origin_place_code,
       REGEXP_EXTRACT(local_chores, r'[^&]+&([^&]+)&.*') AS origin_equipment_code,
  FROM ...