现有字段 ‘版本号’
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())
select regexp_extract('A037.08.151.1.12','[^\\.]\\.(.*)',1)
简单方便容易理解:
SELECT SUBSTR('A037.08.151.1.12',INSTR('A037.08.151.1.12','.')+1)