如何从PostgreSQL中的文件名中获取文件扩展名



如何在PostgreSQL 10 中从文件名中获取文件扩展名

filename.zip
filename.tar.gz
filename.rar
filename.tar.bz2

下面是这样的

filename_202011120001.zip
filename_202011120002.tar.gz
filename_202011120003.rar
filename_202011120004.tar.bz2

您可以使用regexp_replace()。但目前还不清楚你想要什么。如果您想删除第一个句点之前(包括第一个句点(的所有字符:

regexp_replace(filename, '^[^.]*[.]', '')

如果您想返回最后一个后缀:

regexp_replace(filename, '^.*[.]([^.]+)$', '1')

这里有一个db<gt;不停摆弄

您可以使用substring():

substring(filename from '..*')

这将捕获从第一个点到字符串末尾的所有内容。

DB Fiddle上的演示

select filename, substring(filename from '..*') ext
from (values 
('filename.zip'), 
('filename.tar.gz'), 
('filename.rar'), 
('filename.tar.bz2')
) t(filename)
filename|ext:---------------|:-------文件名.zip |.zip文件名.tar.gz|.tar.gz文件名.rar |.rarfilename.tar.bz2|.tar.bz 2

最新更新