Удалите все после последней косой черты в Google Таблицах с помощью Regex

У меня есть URL-адрес в таблице Google, из которого мне нужно удалить все, что находится после последней косой черты в URL-адресе. Мне также нужно убедиться, что последняя косая черта на месте, и добавить ее, если ее нет.

http://example.com/dp/tt560/?tag=ukos20

http://example.com/dp/tt560/

Можно ли объединить все это в одну функцию в Google Таблицах?

Вот что-то близкое, но не совпадающее

Я думаю, что = REGEXREPLACE может быть решением формулы, но я считаю Regex довольно сложным.

ПРИМЕР В GOOGLE ЛИСТЕ

https://docs.google.com/spreadsheets/d/1n9H6rbhrHLQP0MSzcGWXjQAah3IkzsS9AQFErYE4SdI/edit?usp=sharing


person sigur7    schedule 11.05.2018    source источник
comment
Уточните, пожалуйста, последнее предложение.   -  person revo    schedule 11.05.2018
comment
Попробуйте =REGEXREPLACE(B4, "/[^/]*$", "/") или с "/[^/]*/?$". Собственно, ваш последний пример неясен, поскольку в строке есть /.   -  person Wiktor Stribiżew    schedule 11.05.2018
comment
Виктор, я внес ваше предложение в пример Google Sheet. Выглядит хорошо, пожалуйста, дважды проверьте лист, и если вы хотите ввести это в качестве ответа, я поставлю галочку, если вы подтвердите, что все в порядке. Большое тебе спасибо.   -  person sigur7    schedule 11.05.2018
comment
Подожди, может =REGEXREPLACE(B4, "(/[^/]+)(?:/\?[^/]*)?$", "$1/") будет лучше.   -  person Wiktor Stribiżew    schedule 11.05.2018
comment
2-е редактирование выглядит отлично, идеально   -  person sigur7    schedule 11.05.2018


Ответы (1)


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

=REGEXREPLACE(A1, "(/[^/]+)(?:/\?[^/]*)?$", "$1/")

Подробности

  • (/[^/]+) - Группа захвата 1: /, а затем 1+ символов, кроме /
  • (?:/\?[^/]*)? - an optional non-capturing group matching
    • / - a slash
    • \? - символ ?
    • [^/]* - 0 или более символов, кроме /
  • $ - конец строки.

Замена - это $1, содержимое группы 1 и /, которое должно присутствовать (добавление его там, где он отсутствует).

person Wiktor Stribiżew    schedule 11.05.2018