【发布时间】:2021-09-19 06:43:51
【问题描述】:
我表中的一列有一个文件名列表,我想从该列中提取文件扩展名。使用 Presto,如何提取最后一个句点右侧的所有内容 (.)?文件扩展名的长度为 2-4 个字符 (.doc, .xls, .xlsx, etc.)
【问题讨论】:
我表中的一列有一个文件名列表,我想从该列中提取文件扩展名。使用 Presto,如何提取最后一个句点右侧的所有内容 (.)?文件扩展名的长度为 2-4 个字符 (.doc, .xls, .xlsx, etc.)
【问题讨论】:
如果列表是字符串,则使用 regexp_extract:
select regexp_extract('file1.doc, file3.xls, file2.xlsx','.*\.(.*)$',1) --returns xlsx
正则表达式'.*\.(.*)$'含义:
.* - 任何字符 0+ 次
\. - 点
(.*) - 要提取的组,任何字符 0+ 次,
您可以使用(.{2,4}) - 任何字符 2 到 4 次
或([^.]*) - 除点以外的任何字符 0+ 次
$ - 字符串锚的结尾
【讨论】: