Получить windows имя файла без расширения в PostgreSQL - PullRequest
0 голосов
/ 19 марта 2020

Я пытаюсь получить путь к файлу в PostgreSQL.

Я думаю, что регулярное выражение, вероятно, будет лучшим решением, но я не знаю, как их написать

Что у меня есть \\spfs1\stone\foo.txt

Что Я хочу foo

1 Ответ

1 голос
/ 20 марта 2020

Если вы на самом деле не знаете глубину пути и все имена файлов, которые вы ищете, заканчиваются на '.txt', то следующее должно получить то, что вы хотите.

with parm(stg) as (select '\\spfs1\stone\foo.txt'::text)
select stg, substring(stg from '.*\\(.*)\.txt$') from parm;

Что делает шаблон:

  • . * Найдите любое количество символов
  • \\, за которым следует символ \
  • (. *), Затем любое количество символов, и запишите эти символы
  • \. Txt с последующим .txt
  • $ конец строки Возвращает захваченные символы. Примечание: если имя файла было "foo.bar.txt", это вернуло бы "foo.bar".
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...