单独缩短配置单元中的URL

fcipmucu  于 2021-06-28  发布在  Hive
关注(0)|答案(1)|浏览(188)

我有以下结构的URL:

https://pinball.globalzone.com/en_US/home?tic=1-dj33jl-dj33jl&goToRegisterNow=true

我现在要做的是缩短url,以便能够对相似的url模式进行分组和计数。例如,我想退出 https:// ,区域设置 en_US/ 还有代币 ?tic=1-dj33jl-dj33jl 剩下的留着。结果如下:

pinball.globalzone.com/home&goToRegisterNow=true

我试图通过使用 regexp_extract 但这种方法只允许我提取总是在同一位置的特定片段。
更大的问题是,我要剪切的部分要么是基于单个/规则的(即区域设置总是包含两个小写和两个大写字母,用下划线分隔),要么是没有保证长度的唯一部分(即标记)。
此外,我的结果集还将包含具有不同模式的URL,其中我只想剪切现有部分(例如。 https://pinball.globalzone.com/en_US/forgottenPassword ,其中 en_US/ 必须切除)。
如果我必须快速解决这个问题,我只需要获取url并编写一些java或r代码,将get url拆分成若干部分,并在数组中迭代,同时删除所有不需要的部分。然而,我想知道是否有一种更优雅的方法可以直接从Hive中得到这个结果。

p3rjfoxz

p3rjfoxz1#

那怎么办

(?:https?:\/\/|\/[a-z]{2}_[A-Z]{2}|[?&]tic=[^&?]*)

它与你描述的不需要的部分相匹配。用一个空字符串替换它会给你留下你想要的。
在regex101上看到它。
编辑
更新以检查 tic= . 应该让它更稳定。
我不知道这是不是你想要的,但这一个允许 tic= 作为任何参数,不仅是第一个:

(?:https?:\/\/|\/[a-z]{2}_[A-Z]{2}|[?&]tic=[^&?\n]*)

在regex101这里

相关问题