如何从 PostgreSQL 中的文件名获取文件扩展名
How to get file extension from filename in 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, '^[^.]*[.]', '')
如果要return最后一个后缀:
regexp_replace(filename, '^.*[.]([^.]+)$', '')
Here 是一个 db<>fiddle.
您可以使用 substring()
:
substring(filename from '\..*')
这会捕获从第一个点到字符串结尾的所有内容。
select filename, substring(filename from '\..*') ext
from (values
('filename.zip'),
('filename.tar.gz'),
('filename.rar'),
('filename.tar.bz2')
) t(filename)
filename | ext
:--------------- | :-------
filename.zip | .zip
filename.tar.gz | .tar.gz
filename.rar | .rar
filename.tar.bz2 | .tar.bz2
如何在 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, '^[^.]*[.]', '')
如果要return最后一个后缀:
regexp_replace(filename, '^.*[.]([^.]+)$', '')
Here 是一个 db<>fiddle.
您可以使用 substring()
:
substring(filename from '\..*')
这会捕获从第一个点到字符串结尾的所有内容。
select filename, substring(filename from '\..*') ext
from (values
('filename.zip'),
('filename.tar.gz'),
('filename.rar'),
('filename.tar.bz2')
) t(filename)
filename | ext :--------------- | :------- filename.zip | .zip filename.tar.gz | .tar.gz filename.rar | .rar filename.tar.bz2 | .tar.bz2