如何在 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 中。
我正在尝试从如下所示的字符串中提取用户名 (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 中。