HiveQL - 提取与字符串末尾的模式匹配的正则表达式

HiveQL - extract regular expression that matches a pattern at the end of the string

这可能是个愚蠢的问题,但我自己似乎无法克服这个问题 -

我有一个带字符串的字段,有时以逗号分隔的 3 个数字结尾,例如

- 2353535.123213.124 - data.2354234.1324.1314 - data.old-24234.2341.4325

有时不是

- aaaa.53535 - data.old-3521 - data.AFG34fsaf34

每当出现第一种情况时,我都需要从字符串末尾提取 3 位数字模式。含义:

- 2353535.123213.124 -> 2353535.123213.124 - data.2354234.1324.1314 -> 2354234.1324.1314 - data.old-24234.2341.4325 -> 24234.2341.4325 - aaaa.53535 -> Do nothing

这可能吗? 如果不是通过 hiveQL(尽管这是更可取的),即使是 java 正则表达式提取也会有所帮助(在自定义 UDF 中使用)。

\d+(?:\.\d+){2}$

您可以使用这个 java 表达式。See demo