Автор Тема: Удаление строк  (Прочитано 1219 раз)

sotex2

  • Newbie
  • *
  • Сообщений: 2
Удаление строк
« : Января 09, 2022, 00:17:21 »
Доброго времени суток, подскажите как в саблайм удалить целиком строки, если в ссылке находится 2 слеша. Если в ссылке 3 слеша, то не трогать эти ссылки.

пример ссылок
https://sbis.ru/contragents/301807389184
https://sbis.ru/contragents/352519549170
https://sbis.ru/contragents/7838407291/783801001

Loac

  • Administrator
  • Hero Member
  • *
  • Сообщений: 612
Re: Удаление строк
« Ответ #1 : Января 09, 2022, 03:17:38 »
Если речь об обработке относительно небольшого списка, то проще через поиск выделить те ссылки, в которых 3 слеша и скопировать-вставить их.

Например, так.

https://(?=.+/.+/.+/).+
найти все, скопировать, выделить все, вставить.

sotex2

  • Newbie
  • *
  • Сообщений: 2
Re: Удаление строк
« Ответ #2 : Января 09, 2022, 04:07:30 »
не вариант

Loac

  • Administrator
  • Hero Member
  • *
  • Сообщений: 612
Re: Удаление строк
« Ответ #3 : Января 09, 2022, 12:49:42 »
Ну тогда добавить небольшой плагин.

Tools / Developer / New Plugin...

Как-нибудь обозвать и сохранить куда предлагают (Packages \ User). Вставить примерно следующее:

import sublime
import sublime_plugin
import re

class RemoveSlashesCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        regions = self.view.find_all('https?://.+?\s', 0)

        self.view.selection.clear()
        for region in regions:
            slashes = len(re.findall('/', self.view.substr(region)))
            if slashes == 4:
                self.view.selection.add(region)

        self.view.run_command('delete_word')

Добавить хоткей.

Preferences \ Key Bindings

[
  {
    "keys": ["ctrl+k", "ctrl+e"],
    "command": "remove_slashes"
  }
]

Теперь по нажатию ctrl+k ctrl+e будет выполнятся команда.