Убрать регулярным выражением слеш из ссылки если он есть

Есть перечень ссылок, некоторые из них заканчиваются на /, как их убрать? Нужно убрать только / (слеш если он есть), который стоит после файла:

 https://somesite.com//gallery/2020/6/4/19n.jpg
 https://somesite.com//gallery/14tn.jpg/   - здесь убрать
 https://somesite.com//gallery/2020/6/4/14tn.jpg/   - здесь убрать
 https://somesite.com//gallery/ 

Ответы (3 шт):

Автор решения: Vadik

Сохранить список ссылок в файл urls.txt:

https://somesite.com//gallery/2020/6/4/19n.jpg
https://somesite.com//gallery/14tn.jpg/
https://somesite.com//gallery/2020/6/4/14tn.jpg/
https://somesite.com//gallery/

В терминале выполнить команду:

cat urls.txt | sed 's/\.jpg\/$/.jpg/'

Результат:

https://somesite.com//gallery/2020/6/4/19n.jpg
https://somesite.com//gallery/14tn.jpg
https://somesite.com//gallery/2020/6/4/14tn.jpg
https://somesite.com//gallery/ 
→ Ссылка
Автор решения: PotroNik

Регулярное выражение: (?<=jpg)\/(?=\s)

Пример на JavaScript:

const regex = /(?<=jpg)\/(?=\s)/gm;

const str = ` https://somesite.com//gallery/2020/6/4/19n.jpg
https://somesite.com//gallery/14tn.jpg/   - здесь убрать
https://somesite.com//gallery/2020/6/4/14tn.jpg/   - здесь убрать
https://somesite.com//gallery/2020/6/4/14tn.jpg/
https://somesite.com//gallery/ `;

console.log(str.replace(regex, ''));
Подробнее:
(?<=jpg) - группа позитивного просмотра назад, проверяем что перед слеш есть текст jpg
\/ - экранируем слеш, т.к. чаще всего они используется в роли разделителя. В нашем случае он нужен как обычный стринг
(?=\s) - группа позитивного просмотра вперед, проверяем что после символа слеш идет любой пробельный, \s эквивалентно [\r\n\t\f\v ]

→ Ссылка
Автор решения: teran

в каком-нибудь notepad++ делаем замену \.(jpe?g|png|gif)/$ на .$1
нужные расширения файлов перечисляем через | внутри скобок

→ Ссылка