Regex “当”时如何创建案例;包含“;?
是否可以在Regex “当”时如何创建案例;包含“;?,regex,case,google-data-studio,re2,Regex,Case,Google Data Studio,Re2,是否可以在源文件中搜索姓名 CASE WHEN Source="facebook_instagram" OR Source="facebook.com" OR Source="m.facebook.com" OR Source="instagram.com" OR Source="instagram" OR Source="l.facebook.com" OR Source
源文件中搜索姓名
CASE
WHEN Source="facebook_instagram" OR Source="facebook.com" OR Source="m.facebook.com" OR Source="instagram.com" OR Source="instagram" OR Source="l.facebook.com" OR Source="lm.facebook.com" OR Source="facebook" OR Source="de-de.facebook.com" THEN "Social"
ELSE "Sonstige"
END
有没有一种方法可以选择所有facebook
源而不列出它们?使用REGEXP\u MATCH当然可以减少代码量
比如说
CASE
WHEN REGEXP_MATCH(Source, '.*facebook.*') OR REGEXP_MATCH(Source, '.*instagram.*') THEN 'Social'
ELSE 'Sonstige'
END
消除某些重复的另一个选择是使用。对于您的代码,将产生以下结果:
CASE
WHEN Source IN("facebook_instagram", "facebook.com", "m.facebook.com", "instagram.com", "instagram", "l.facebook.com", "lm.facebook.com", "facebook", "de-de.facebook.com") Then "Social"
ELSE "Sonstige"
END
它可以通过使用语句中的函数来实现;下面的正则表达式查找facebook
或(|
)instagram
,而不管字符串以什么开头(^
),文本(*
),文本(*
)之后是什么,或者以什么结尾($
):
和一个GIF来详细说明:
CASE
WHEN REGEXP_MATCH(Source, "^.*(facebook|instagram).*$") THEN "Social"
ELSE "Sonstige"
END