postgresql 如何在PSQL中获取从第4个字符到给定字符串末尾的子字符串

nr9pn0ug  于 2022-12-03  发布在  PostgreSQL
关注(0)|答案(2)|浏览(165)

范例
我有一串...
'/this/is/a/给定/字符串/测试文件'
如何在PSQL中获取子字符串'given/string/test.file'?
谢谢你,谢谢你

yb3bgrhw

yb3bgrhw1#

您可以使用正则表达式

with example(str) as (
    values('/this/is/a/given/string/test.file')
)

select regexp_replace(str, '(/.*?){4}', '')
from example;

     regexp_replace     
------------------------
 given/string/test.file
(1 row)

或者函数string_to_array()

select string_agg(word, '/' order by ord)
from example,
unnest(string_to_array(str, '/')) with ordinality as u(word, ord)
where ord > 4;

另请参阅How to find the 3rd occurrence of a pattern on a line

h79rfbju

h79rfbju2#

我不知道如何得到一个子字符串的第n次出现,但是对于这个问题,你可以使用正则表达式。如下所示:

select substring('/this/is/a/given/string/test.file' from '/[^/]+/[^/]+/[^/]+/(.*)')

你可以改进正则表达式,这只是为了演示的目的。

相关问题