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