簡體   English   中英

HIVE regexp_extract URL字符串

[英]HIVE regexp_extract URL strings

嗨,我正在嘗試使用Hive從日志中解析較大的URL。

我想從URL(strategy = ??)中提取一個特定的值,這些值可以連字符,但不總是連字符。

我建立了這個示例查詢,但是它什么也不返回。

我究竟做錯了什么?

select regexp_extract('234=23234&werw=asdf&strategy=retargeting&asdf=fds23', '(strategy=)([-\w*]*)',2) from vt;

因此,我期望獲得的值是從此部分URL字符串重新定位 234 = 23234&werw = asdf&strategy = 重定向 &asdf = fds23

任何幫助是極大的贊賞!!!

我相信這個正則表達式將為您工作:

strategy=((\\w-?)+)

這是RegExr鏈接: http ://regexr.com?35sbl。 匹配后,組1包含strategy的值。 請注意,此正則表達式將匹配值中的任意數量的連字符。 如果連字符是第一個字符,它也會失敗(盡管我認為前導連字符不會使值成為“連字符”)。

據我所知,由於組2的設置方式,您的方法未返回任何內容:您具有[-\\w*] ,其內容為“匹配連字符,然后匹配任意數量的字母數字字符(包括0)” 。 您也可以將其改寫為[-?\\w*]* ,它表示“匹配或不匹配連字符,然后是任意數量的字母數字字符(包括0)”。 但是,在這種情況下,它將與連字符匹配

strategy=-

我想這不是您想要的。 一種更安全的方法是將組2設置為[-?\\w+]+ ,這將在等號后至少需要一個\\w字符。 編碼愉快! :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM