如何在 BigQuery 中使用正则表达式提取名称?

How to extract with name with Regex in BigQuery?

我正在尝试从如下所示的字符串中提取用户名 (x): “请求来自使用 'y' 应用程序的用户 'x' ...”

我想提取x。

我尝试通过以下方式进行:

SELECT *,
REGEXP_EXTRACT(message,r"(?<=User ')[^']*") AS user_id
FROM `dataset...`

但我从 BigQuery 收到错误消息:

Cannot parse regular expression: invalid perl operator: (?<

有什么想法吗?

提前致谢!

尝试以下操作:

select REGEXP_EXTRACT("Request is from User 'fvaksman' using the 'y' app ...", r"[User\s'](\w+)[']")

您需要使用捕获组而不是积极的回顾:

SELECT *,
REGEXP_EXTRACT(message, r"User '([^']*)") AS user_id
FROM `dataset...`

这里,

  • User ' - 匹配 User ' 字符串
  • ([^']*) - 将 ' 以外的零个或多个字符捕获到由 REGEXP_EXTRACT 函数返回的组 1 中。