使用 Hive 从字符串中提取带图案的文本

Extract patterned text from a string with Hive

我的列中有数据,如下所示:

  • Countryside_Video_-_A18-49_Pub_-Q3-_Flight_7_18_49_BOTH

  • Countryside Video - M18-25 Validated -Q4 - Flight 1

  • PremiumBrand_2019_Upfront_Video_-_W18-49_Validated_-_Q4_Flight_1_18_49_FEMALE

  • Travel Around the World - W25-54 Validated - Q3 25-54_FEMALE

我需要从每个字符串中提取年龄和性别值:

  • A18-49
  • M18-25
  • W18-49
  • W25-54

这很棘手,因为字母 A、M、F 和数字范围之间可能有任意数量的组合。这些字母表示年龄、男性或女性。号码范围就是年龄范围。

通过谷歌搜索,我似乎可以使用 regexp_extract 函数,但我是 Hive 的新手。如有任何帮助,我们将不胜感激!

我手边没有要测试的 Hive,但这可能有效:

select regexp_extract(col, '([AMW][0-9]{2}[-][0-9]{2})', 1)