You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在BigQuery中从相似模式字符串提取指定内容

BigQuery提取特定用户名的解决方案

核心思路

要从合并评论字段中提取以"ET"开头、且在"dc viewed"之前出现的首个用户名,用BigQuery的正则表达式函数REGEXP_EXTRACT是最简洁高效的方式,它能直接匹配符合条件的字符串片段。

基础SQL示例

假设你的表是your_project.your_dataset.complaint_tracker,合并评论字段名为combined_comments,可以用以下查询:

SELECT
  complaint_id, -- 替换为你的主键字段
  REGEXP_EXTRACT(combined_comments, r'(ET\S+)(?=.*dc viewed)') AS dc_first_confirm_user
FROM
  `your_project.your_dataset.complaint_tracker`
WHERE
  combined_comments LIKE '%ET%' -- 过滤掉无目标用户的记录
  AND combined_comments LIKE '%dc viewed%'

正则表达式说明

  • ET\S+:匹配以"ET"开头的连续非空白字符(适用于用户名无空格的场景)
  • (?=.*dc viewed):正向预查规则,确保匹配到的用户名出现在"dc viewed"内容之前
  • REGEXP_EXTRACT默认返回第一个匹配到的结果,正好符合你"首个确认请求用户"的需求

适配含空格的用户名

如果用户名包含空格(比如ET Jane Doe),调整正则为非贪婪匹配模式即可:

SELECT
  complaint_id,
  REGEXP_EXTRACT(combined_comments, r'(ET[\w\s]+?)(?=.*dc viewed)') AS dc_first_confirm_user
FROM
  `your_project.your_dataset.complaint_tracker`
WHERE
  combined_comments LIKE '%ET%'
  AND combined_comments LIKE '%dc viewed%'

精准匹配带格式的用户名

如果用户名被特定符号包裹(比如[ET Jane Doe]),修改正则匹配符号内的内容:

SELECT
  complaint_id,
  REGEXP_EXTRACT(combined_comments, r'\[(ET[\w\s]+?)\](?=.*dc viewed)') AS dc_first_confirm_user
FROM
  `your_project.your_dataset.complaint_tracker`
WHERE
  combined_comments LIKE '%ET%'
  AND combined_comments LIKE '%dc viewed%'

内容的提问来源于stack exchange,提问作者commonparadox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 19:09:28