[英]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.