小编Jon*_*onk的帖子

使用正则表达式从 Google BigQuery 中的 url 中提取完整域

我可以请求您帮助构建一个在 Google Big Query 上使用的正则表达式,使用REGEXP_EXTRACT它来解析给定输入 url 的完整域吗?

\n\n

解析条件:

\n\n
    \n
  • 开始捕获应该是:\n\n
      \n
    • //如果url 中第一次//出现后有 a :
    • \n
    • //如果字符串开头没有:
    • \n
  • \n
  • 结束捕获应该是:在第一个?或第一个/或第一个之后&或直到字符串末尾(如果没有找到?,/或 )&
  • \n
\n\n

一些例子:

\n\n
htp://www.google.com --> www.google.com\nhtp://www.google.com/item/ --> www.google.com\nhtp://www.google.com?source=google --> www.google.com\nhtp://www.google.com&source=google --> www.google.com\nwww.google.com --> www.google.com\nwww.google.com/item/ --> www.google.com\nwww.google.com?source=google --> www.google.com\nwww.google.com&source=google --> www.google.com\nhttp://google.com&source=google --> google.com\nhttps://www.example-code.com/vb/string.asp --> www.example-code.com\n
Run Code Online (Sandbox Code Playgroud)\n\n

我创建了这个正则表达式:

\n\n
REGEXP_EXTRACT('google.it?medium=cpc?cobranded=google&keywor\xe2\x80\x8c\xe2\x80\x8bd=foo';, r'//([^/|^?|^&]+)')\n
Run Code Online (Sandbox Code Playgroud)\n\n

但它仅适用于包含 的网址//,我无法获得一个//在网址中没有的情况下也适用的正则表达式。

\n

regex google-bigquery

3
推荐指数
2
解决办法
1万
查看次数

使用正则表达式从 Google BigQuery 中的 url 中提取参数

我可以请您帮忙使用 REGEXP_EXTRACT 构建一个在 Google Big Query 上使用的正则表达式,该表达式将解析由特定键标识的 url 参数的值吗?

假设我要解析的参数的键值等于“source”。解析应该:

  • 确保键之前有“?” 或一个 "&" 之后有一个 "=" : 所以在示例中匹配 "?source=" 或 "&source="
  • 捕获值直到第一个“&”或字符串结尾
  • 如果上述条件匹配不止一次,则应取第一次出现的值

以下是一些所需行为的示例(它们都应该提供“google”作为输出):

  • www.google.com?source=google&medium=cpc --> 输出:google
  • www.google.com?source=google --> 输出:google
  • www.google.com?medium=cpc&source=google --> 输出:google
  • www.google.com?medium=cpc&source=google&keyword=foo --> 输出:google
  • www.google.com?medium=cpc&source=google&keyword=foo&source=bing --> 输出:google
  • www.google.it?medium=cpc?source=goo-gle --> 输出:goo-gle
  • www.google.it?medium=cpc?source=google?med=cpc&keyword=foo --> 输出:google?med=cpc

非常感谢您的帮助!

regex google-bigquery

2
推荐指数
2
解决办法
5503
查看次数

标签 统计

google-bigquery ×2

regex ×2