Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex “当”时如何创建案例;包含“;?_Regex_Case_Google Data Studio_Re2 - Fatal编程技术网

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