我的表中有一列的条目如下:
this/is/my/dir/file this/is/my/another/dir/file
我想显示不带文件名的字符串:
this/is/my/dir/
这是我正在使用的查询:
select regexp_replace('this/is/my/another/dir/file','[^/]+','');
k5ifujac1#
好的,你可以用 regexp_replace 移除 file 并且只保留dir路径,因为我们知道文件名不包含字符“/”,并且总是位于dir路径的末尾,所以regexp可以写成 '[^/]+$' ,示例如下,表示用regexp替换子字符串 '[^/]+$' 空空荡荡的 '' .
regexp_replace
file
'[^/]+$'
''
select regexp_replace('/this/is/my/dir/file','[^/]+$','') as dir; +-------------------+ | dir | +-------------------+ | /this/is/my/dir/ | +-------------------+ select regexp_replace('this/is/my/another/dir/file','[^/]+$','') as dir; +--------------------------+ | dir | +--------------------------+ | this/is/my/another/dir/ | +--------------------------+
1条答案
按热度按时间k5ifujac1#
好的,你可以用
regexp_replace
移除file
并且只保留dir路径,因为我们知道文件名不包含字符“/”,并且总是位于dir路径的末尾,所以regexp可以写成'[^/]+$'
,示例如下,表示用regexp替换子字符串'[^/]+$'
空空荡荡的''
.