首页 > 问答 > GA的关键词查询上限问题

GA的关键词查询上限问题

[导读]:批量查词流量的时候,用正则匹配,最多查36个,多1个就报错。 是正则表达式的问题,回溯次数超过 100000 次,堆栈溢出。 如果懂的话,最好优化下正则表达式。 Google Analytic...

批量查词流量的时候,用正则匹配,最多查36个,多1个就报错。



是正则表达式的问题,回溯次数超过 100000 次,堆栈溢出。
如果懂的话,最好优化下正则表达式。

Google Analytics 没怎么用过,不过正则的优化理念基本是通用的,不要让计算机较为宽泛地寻找匹配,而要精确简约。

譬如 PHP preg_match_all 匹配百度搜索结果,原先用了 2 个正则分开匹配标题与链接。

//匹配第 1 类搜索结果标题
if
(preg_match_all("/({\"title\":\")(.+)(?=\",\"url\":\"http:\/\/www)/", $baiduserp, $matchtitle))

//匹配第 1 类搜索结果链接
if
(preg_match_all("/(url\":\")(.+)(?=\"}')/", $baiduserp, $matchlink))

后来发现这样正则会去寻找不固定出现的百度推广链接是否匹配,一旦百度推广结果过多,就会栈溢出。

现在优化后的正则,将百度搜索结果标题与链接整合在一起,增加了零宽度正回顾后发断言,告诉机器不要耗费资源去寻找百度推广结果,于是就正常了。

//匹配第 1 类搜索结果
if
(preg_match_all("/(?<=data-tools\=\'{\"title\":\")([^\"]+)(\",\"url\":\"http:\/\/\/link\?url\=)([a-zA-Z0-9_-]+)(?=\"}')/", $baiduserp, $matchserp))

本文来自投稿,不代表微盟圈立场,如若转载,请注明出处:https://www.vm7.com/a/ask/22924.html