如何在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