我正在使用Google Big Query和查询 表格中列的样本记录:
age=18;cntry=us;coid=9911718;csize=c;func=ops;gdr=f;grp=2099628;grp=85824;grp=1548357;grp=88799;grp=2059383;grp=1937629;ind=78;lang=en;mod=0;occ=511;optout=false;reg=21;s=0;seg=9001;seg=761;seg=541;seg=521;seg=1068;seg=557;seg=546;seg=514;seg=504;seg=183;seg=263;sub=0;tile=1;tile_p=1;title=ic;u=nql8uz5qrt8vcqh5tkcqq697
查询:
SELECT REGEXP_EXTRACT(col,r'age=(\d+)') AS age,
REGEXP_EXTRACT(col,r'cntry=(\d+)') AS country,
REGEXP_EXTRACT(col,r'gdr=(\d+)') AS gender from table x
结果:18 null null
我只获得年龄值,但其他值为null。任何帮助都会很好。
答案 0 :(得分:0)
cntry
和gdr
值不是数字,它们由字母组成。
您可以使用\w+
匹配1个或多个“字”字符,即字母,数字和下划线:
SELECT REGEXP_EXTRACT(col,r'age=(\d+)') AS age,
REGEXP_EXTRACT(col,r'cntry=(\w+)') AS country,
REGEXP_EXTRACT(col,r'gdr=(\w+)') AS gender from table x