регулярное выражение - заменить несколько вхождений - PullRequest
0 голосов
/ 04 октября 2018

У меня есть строка, может быть в любом из следующих случаев:

  1. test1 / test2 / test3 / test4 / test5 /
  2. test1 / test2 / test3 / test4 //
  3. test1 / test2 / test3 ///
  4. test1 / test2 ////
  5. test1 /////

Мой ожидаемыйрезультаты:

  1. test1 / test2 / test3 / test4 / test5
  2. test1 / test2 / test3 / test4

  3. test1 /test2 / test3

  4. test1 / test2
  5. test1 Как мне добиться с помощью регулярных выражений?

В настоящее время я использую regexp_replace (col, "/ +/ "," / ") это работает, но оставляется лишний / на конце.

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Вы можете использовать

regexp_replace(col, '/+$|(/){2,}', '\\1')

См. Демоверсию regex .

Подробности

  • /+$ - 1 или более / в конце строки
  • | - или
  • (/){2,} - два или более слеша, последний из которых будет сохранен в группе захвата1, на которую вы сможете ссылаться из шаблона замены, используя заполнитель \1.
0 голосов
/ 04 октября 2018

Вы можете использовать следующее регулярное выражение:

/\/+$/gm

и заменить его пустой строкой ('').

Регулярное выражение будет соответствовать одной или нескольким косым чертам в концеstring, затем заменит их пустой строкой, то есть пути больше не будут заканчиваться косой чертой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...