Google Data Studio正则提取URL中?后的文本问题求助
在Google Data Studio中提取URL问号后的查询参数内容
问题场景
需要从页面URL中提取?字符之后的所有文本,输入输出示例如下:
| Input | Output |
|---|---|
| example.com/solutions?search=reg | search=reg |
| example.com/solutions?sort_field_name=visits_count&sort_direction=desc&category=Advanced+Patient+Scheduling | sort_field_name=visits_count&sort_direction=desc&category=Advanced+Patient+Scheduling |
| example.com/categories/c2a3dd33-4b3d-4a01-955f-faee81abc871?tab=resources | tab=resources |
| example.com/solutions | null |
尝试使用公式 REGEXP_EXTRACT(Full page URL,'[^?]+$'),该表达式在正则测试工具中可正常运行,但在Google Data Studio中无法生效,转义特殊字符后问题仍存在。
解决方案
Google Data Studio采用RE2正则引擎,与部分测试工具默认的PCRE引擎存在语法行为差异。使用以下公式即可实现需求:
REGEXP_EXTRACT(Full page URL, r'\?(.*)')
原理说明
\?:匹配URL中的问号字符(需转义,因为?在正则中是表示匹配次数的特殊元字符)(.*):捕获问号之后的所有字符(.*表示匹配任意数量的任意字符,直到字符串结尾)- 当URL中不存在
?时,正则无匹配结果,公式会返回null,完全符合预期输出要求。
验证结果
将上述公式应用到示例输入中,可完全匹配预期输出:
- 带单个查询参数的URL:正确提取
search=reg - 带多参数的URL:完整提取所有查询串内容
- 带路径+查询参数的URL:正确提取
tab=resources - 无查询参数的URL:返回
null
内容的提问来源于stack exchange,提问作者Ronak Kadakia
相关产品推荐
相关产品推荐

