BigQuery正则表达式提取问题:如何提取指定位置可变URL
解决方法
- 你的正则只匹配了固定长度的前缀,没捕获两个标记间的可变URL,得调整成非贪婪匹配来抓目标内容:
修正后的查询语句:SELECT REGEXP_EXTRACT(ColumnA, r'referrer\\",\\"Value\\":\\"(.*?)\\",\\"IgnoreForCache\\"') FROM database - 核心要点:
(.*?)是非贪婪捕获组,会精准匹配两个边界字符串之间的所有内容(直到碰到第一个\",\"IgnoreForCache\"就停止),完美适配可变长度的URL提取。- 注意转义处理:原字符串里的
\"在SQL正则里要写成\\",因为SQL需要额外转义反斜杠。
- 要是想更精准避免误抓,还可以把
.*?换成URL专属匹配规则,比如只抓http/https开头的链接:
这里SELECT REGEXP_EXTRACT(ColumnA, r'referrer\\",\\"Value\\":\\"(https?://[^\\&]+)\\",\\"IgnoreForCache\\"') FROM databasehttps?://[^\\&]+会匹配以http/https开头,直到遇到第一个\&的内容,过滤掉非URL的杂项。
内容的提问来源于stack exchange,提问作者user22260125
相关产品推荐
相关产品推荐

