regex - REGEXP_REPLACE Data Studio中的YouTube视频URL清理

标签 regex youtube google-data-studio

我正在触发一个事件,该事件将事件标签发送为“{{YouTube视频名称}}-{{视频URL}}”,并且正在尝试清理Data Studio报告以删除重复项。这是我要清理的三个字符串结构(合并),第一个示例是主要的结构,也是所需的结果。

影片名称-https://www.youtube.com/watch?v=BHdX7wjVZuoI

影片名称-https://www.youtube.com/watch?v=BHdX7wjVZuoI&ebc=ANyPxKrWfYNNVhpt95KfvUrpVQmzotu0CtDxIhnZlW3WyfXfnilceZ6cSW3JbSrVFvNH2T5sO8tyf0PEhdFeSh7waKYfyZEgcg

影片名称-https://www.youtube.com/watch?t=1&v=BHdX7wjVZuoI

REGEXP_REPLACE(Event Label,'(.*youtube\\.com/watch\\?v=[^\\&]*)\\&(.*)','\\1')
REGEXP_REPLACE(Event Label,'(.*youtube\\.com/watch\\?)(t=[0-9]*\\&)?(v=[^\\&]*)\\&(.*)','\\1\\3')

REGEXP_REPLACE都适用于前两个示例,并删除“&ebc =“之后的所有内容。

我似乎无法使用的是第三个视频网址示例,并删除了中间部分。在上面的示例代码中,这是“t = 1&”。我尝试删除的所有网址字符串都具有相同的格式:
“t =”(一个或多个数字)“&”。

我尝试了第二个代码,在其中添加了(t=[0-9]*\\&)?,但这些视频网址未被捕获,并且仍显示为单独的事件标签(网址)。

任何帮助表示赞赏。

最佳答案

这个 REGEXP_REPLACE Calculated Field可以解决这个问题:

REGEXP_REPLACE(Event Label, '^(.*youtube\\.com/watch\\?).*(v=[^\\&]*).*', '\\1\\2')

简要说明:
  • *在出现0次或更多次且与该字符或与之相邻的组关联时与该字符匹配。
  • =*查找0次或多次出现=
  • [^\\&]*匹配0个或多个匹配项或除&之外的任何字符,因此(v=[^\\&]*)提取v=以及第一次出现&之前的所有字符。
  • 此外,.*还将提取任何字符0次或更多次。

  • Google Data Studio Report详细说明:

    关于regex - REGEXP_REPLACE Data Studio中的YouTube视频URL清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61544819/

    相关文章:

    google-data-studio - 将 CONTAINS 设置为 Google Data Studio 搜索过滤器中的默认值

    api - Youtube API v3 - 从视频中获取信息

    regex - RegExp_提取Google Data Studio中第一个点之前的所有内容

    regex - 为什么Golang中的这个正则表达式是非贪婪的?

    java - 使用 Lookahead Regex 时出现模式异常

    wordpress - 使用 WP-AppKit 嵌入 YouTube

    cocoa-touch - 在 iOS 中嵌入 Youtube 视频

    mysql - 将 Google Data Studio 连接到本地 Mysql 服务器

    r - 如何删除R中包含下划线或句点的单元格?

    c# - 防止重复标记的正则表达式