hive sql 正则提取问题

现有字段 ‘版本号’
A037.08.151.1.12
G037.08.157
Z03.08.152.1
Q1037.08.151.1
如果要提取第一个 . 后的内容
如何使用 regexp_extract完成?
如 G037.08.157 提取08.157
Q1037.08.151.1 提取 08.151.1
谢谢

试下这个

import re

texts = [
    "A037.08.151.1.12",
    "G037.08.157",
    "Z03.08.152.1",
    "Q1037.08.151.1"
]
for text in texts:
    version = re.findall(r'[A-Z]?\d+\.(.*)', text)
    print(version[0])

hive sql写法

select regexp_extract('Q1037.08.151.1', '[A-Z]?\d+\.(.*)', 1);
[A-Z]?\d+\.(.+)

import re
text = """A037.08.151.1.12
G037.08.157
Z03.08.152.1
Q1037.08.151.1"""
obj = re.compile(r'\.(\.|[0-9])*', re.S)
for i in obj.finditer(text):
    print(i.group())

img

select regexp_extract('A037.08.151.1.12','[^\\.]\\.(.*)',1)


简单方便容易理解:
SELECT SUBSTR('A037.08.151.1.12',INSTR('A037.08.151.1.12','.')+1)