Hive中带有URL的REGEXP_EXTRACT

时间:2018-07-17 20:46:46

标签: regex hive

我想在URL中的'/ bla-bla-bla /'和'a12345'之间提取一个词,它是使用Hive中的regexp_extract的"this-is-the-word"

  

输入:www.website.com/bla-bla-bla/this-is-the-word.a12345.anotherword.blabla

     

期望的输出:这就是字

我在下面尝试过,但是没有一个起作用。什么样的RegEx可以从此输入中获得我想要的输出?

regexp_extract(URL,'^.*[/]bla[-]bla[-]bla[/]([a-z]+)\\.(a([0-9]+))*$',1)
regexp_extract(URL,'^.*[/]bla-bla-bla[/]([a-z]*)[.]a([0-9]+)*$',1)

1 个答案:

答案 0 :(得分:2)

您可以使用

regexp_extract(URL,'^.*/bla-bla-bla/([^/.]+)\.a[0-9].*$', 1)

请参见this regex demo

它匹配

  • ^-字符串的开头
  • .*-除换行符以外的任意0+个字符,并且尽可能多
  • /bla-bla-bla/-文字/bla-bla-bla/子字符串
  • ([^/.]+)-第1组(自下一个参数为1起您将获得的结果):除/.以外的1个或更多字符
  • \.a-一个.a子字符串
  • [0-9]-一个数字
  • .*$-字符串的其余部分。