繁体   English   中英

如何在 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 收到一个错误:

无法解析正则表达式:perl 运算符无效:(?<

关于如何做的任何想法?

先感谢您!

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

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

这里,

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

尝试以下操作:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM