使用BigQuery REGEXP_REPLACE修改字符串的一部分

时间:2019-04-03 07:10:14

标签: string google-bigquery regexp-replace

我想知道是否有人可以帮助我。

bigquery表中的我的eventinfo.eventLabel字段包含以下数据:

  

查看BDAT组的查看代码红色

SELECT
  #select all fields excluding those under the hits record
  * EXCEPT (hits),
  #start array - this rebuilds the hit record
  ARRAY(
  SELECT
    #unnest the hit field, select each field excluding those under the page record
    AS STRUCT * EXCEPT (eventInfo ),
    (
    SELECT
      #select all page fields excluding pageTitle
      AS STRUCT eventInfo.* EXCEPT (eventLabel),
      #remove the query parameter from the pagePath fields
      REGEXP_REPLACE(eventinfo.eventLabel, r'View\sView .*', 'View View redacted') AS eventLabel) AS eventinfo
  FROM
    UNNEST(hits) ) AS hits
FROM
  `bigquery.Tested.ga_sessions_20180801` 

我正在尝试删除数据中的“红色代码”元素,并将其替换为“已编辑”一词。

请注意,“红色代码”不是唯一的值,字符数可以增加和减少。但是“ View View”和“ for the”在我的整个数据中都是不变的。

我知道问题出在REGEXP REPLACE行,我可以设法将“编辑过的”文本放入字段中,但是我无法删除“红色代码”文本。

有人可以看看这个问题,并提供一些有关如何更改它的指导。

非常感谢和问候

克里斯

1 个答案:

答案 0 :(得分:0)

select 
  [
  REGEXP_REPLACE('View View Code red for the BDAT group', r'View View .*? for the', 'View View redacted for the'),
  REGEXP_REPLACE('View View Code blue for the BDAT group', r'View View .*? for the', 'View View redacted for the'),
  REGEXP_REPLACE('View View red code for the BDAT group', r'View View .*? for the', 'View View redacted for the')
  ]

enter image description here