Notepad++ стал моим первым профессиональным инструментом в веб-разработке и создании сайтов.
И не потому что там есть множество инструментов для работы с исходным кодом, и не из-за обилия плагинов для Notepad++.
Всё проще — в те далёкие времена уроков по веб-дизайну было не так много, а Notepad++ был приведён в статейке по которой я упражнялся. Это было что-то вроде hello-world для HTML. ?
Ещё тогда меня удивил аскетичный интерфейс утилиты и обилие пунктов меню. И до сих пор Notepad++ это самый навороченный текстовый редактор, которым я ежедневно пользуюсь.
В Notepad++, среди прочего, большое внимание уделяется собственному языку регулярных выражений.
Зная как обозначить запрос специальными поисковыми операторами, в Notepad++ можно реализовывать довольно серьезные задачи и работать с большими массивами данных.
Регулярные выражения могут использоваться в Notepad++ для множества логических операция: сортировка строк, удаление дубликатов, поиск и замена как отдельных символов, так и целых логических конструкций. По сути горизонт возможностей такого функционала не ограничен и зависит только от вашей фантазии по его применению.
Я позволил себе отсортировать регулярные выражения для Notepad++ в порядке их надобности и популярности использования. ?
n — Перенос Enter. Что особенно приятно, может использоваться не только для поиска, но и для замены. Например, благодаря этому регулярному выражению, и двум кликам, вы можете поменять построчный список на список через запятую, и наоборот.
t — Табуляция. Означает то же, что и действие клавиши Tab. Очень полезно, если вы комбинируете работу в excel и notepad++. Знаки tab по умолчанию переносятся как колонки таблицы.
nr — Выражение для поиска пустых строк.
s — Пробел. В большинстве случаем вы можете искать просто введя символ пробела в поле поиска Notepad++, однако в составе сложных регулярных выражений пригодится это обозначение. Например, конструкция ^s*$ найдёт все строки с пробелом.
^ и $ — Символы начала и конца соответственно.
d — Этим регулярным выражением в Notepad++ можно обозначить любую цифру. Учитывайте, что под цифрой подразумевается «единичный экземпляр», а не всё число. Например, применив эту комбинацию в тексте с числом 789, последовательно найдутся все три цифры (7, 8, 9) в этом числе.
.(точка) и .*(точка со звёздочкой) — Любой символ и любая последовательность оных соответственно.
D — Также найдутся любые символы, но не цифры.
[a-z], [A-Z], [a-Z], [0-9] — На мой взгляд, всё и так понятно, но я поясню. Такие регулярные выражения в квадратных скобках означают последовательность букв или цифр, и регистр искомого выражения.
Примеры и применение регулярных выражений в Notepad++
Согласитесь, весь этот список на вид звучит довольно нудно и напоминает что-то среднее между высшей математикой и программированием. ? Мне стоит привести примеры использования регулярных выражений и символов Notepad++.
Удалить пустые строки в Notepad++
Удалить пустые строки с помощью текстового редактора Notepad++ просто — выше я уже писал регулярное выражение для этого — nr . Его необходимо ввести в окне поиска и замены. При этом поле Замены оставьте пустым. Все пустые строки удалятся из документа, их место займут данные располагающиеся ниже.
Либо, что конечно же проще, если ваше выражение больше никаких условий не требует, воспользуйтесь пунктом в меню. Edit => Line Operations => Remove empty lines. Там же есть и пункт для удаления пустых строк с пробелом: Containing Blank Characters.
Удалить всё после символа / перед символом в строке в Notepad++
Регулярное выражение удаление всех данных в строке до определенного символа, или их группы я часто использую, например, при сортировке маркетинговых баз с e-mail.
Для того чтобы в Notepad++ удалить всё в строке перед определенным символом, используйте комбинацию .+(искомая-часть). Давайте я разберу подробнее. Например, у нас есть txt файл с почтовыми адресами коллег, по одному адресу в столбик. Кроме того в этой же строке могут содержаться и ФИО человека через пробел, табирование, или через запятую.
Выглядит это вот так:
nastya@mail.ru Анастасия Евгеньевна Петрова
pasha@yandex.ru Павел Иванов Юрлица
vasya@notepad-plus-plus.ru Василий Павлович Работа
И таких контактов с списке у нас 500. Для того чтобы отделить домены, нам понадобится 2 действия в Notepad++, удалить всё в строках до определенного символа, а затем удалить всё в строках после.
Первая регулярное выражение для нас будет .+(@), в поле замены оставляем пустым.
Результат
mail.ru Анастасия Евгеньевна Петрова
yandex.ru Павел Иванов Юрлица
notepad-plus-plus.ru Василий Павлович Работа
Второе регулярное выражение Notepad для удаления после символа, можно сконфигурировать по доменному суффиксу, запрос будет (.ru.+)$.
yandex
notepad-plus-plus
Удалить дубликаты строк в Notepad++
Удаление дубликатов строк в Notepad++ это вообще отдельная большая тема. Мало кто знает как сконфигурировать поисковой запрос в текстовом редакторе и удалить повторяющиеся строки исключительно через Notepad++, не прибегая к помощи плагинов и сторонних расширений.
Но я — знаю ?. Чтобы удалить построчное дублирование в Notepad, используйте эту фразу:
^(.*?)$s+?^(?=.*^1$)
Важно, чтобы все галочки в поиске у вас были включены. И зациклить поиск, и применять регулярные выражения, тогда Notepad++ точно сработает как надо, и удалит из документа дубли строк.
Второй способ избавится от дублирования строк
Второй способ удалить дубликаты строк с помощью Notepad++ абсолютно не элегантен, но функционален при ежедневном использовании. Навигатор по репозиторию дополнений встроен прямо в ваш Notepad. Просто ставим плагин через меню Plugins => Plugin manager.
Нужный нам плагин называется TextFx Characters.
Не слишком сложно, правда? Устанавливаются плагины автоматически, нужно будет только перезагрузить утилиту. Жмёте установить и активировать.
Функционал плагина местами дублирует многие регулярные выражения в Notepad++, а по-моему мнению собственно на них и основан.
Настройка для удаления дубликатов строк находится в меню: Textfx => Tools => Sort Lines insensetive.
Не забудьте выделить данные в редакторе, перед тем как нажимать.
Notepad++: плагины и альтернативы.
Для начала про плагины. Как вы поняли, в Notepad++ система плагинов весьма интуитивна и встроена в редактор. Но, кроме того, существует и множество других дополнений от сторонних авторов — в этом одна из прелестей freeware софта. Пожалуй, я как-нибудь выложу их обзор, если вам будет интересна тема Notepad и эта статья придётся по вкусу.
Что касается альтернатив, Notepad++ любят за регулярные выражения, легкость, простоту и бесплатность. Такое сочетание вообще, пожалуй, единственное в этом кластере, потому лично я не вижу прямых конкурентов и альтернатив для Notepad.
Но если посмотреть на нишу шире, можно вспомнить про AkelPad (тоже текстовый редактор), Textmate, LeafPad, Sublime Text, Atom, Brackets…Так можно дойти и до моего любимого Adobe Dreamweaver. Однако, всё это по сути уже не то. Notepad++ неповторим, аскетичен, и по своему прекрасен, и очень в духе софта былых времён. ?
P.S. Если вам была полезна эта статья, оставьте коммент, и я буду знать что двигаюсь в правильном направлении. Или задавайте вопросы! welcome ⬇️⬇️⬇️
Последнее обновление Сен 22, 2021
Как удалить дубликаты строк в Notepad++
При помощи плагина TextFX
Вам понадобится плагин TextFX. Раньше он был включен в более старые версии Notepad ++, но если у вас есть более новая версия, вы можете добавить плагин из меню, перейдя в Plugins → Plugin Manager → Show Plugin Manager → Available tab → TextFX → Install. В некоторых случаях его также можно найти введя TextFX, но это одно и то же.
Теперь необходимые флажки и кнопки появятся в меню: TextFX → Инструменты TextFX.
Убедитесь, что установлен флажок «sort lines case sensitive». Затем выберите блок текста (Ctrl + A, чтобы выделить весь документ). Наконец, нажмите sort lines case sensitive (Сортировать строки с учетом регистра) или sort lines case insensitive (Сортировать строки без учета регистра).
При помощи поиска и замены по регулярным выражениям
Выполните поиск с заменой для поиска
^(.*?)$s+?^(?=.*^<span class="hljs-number">1</span>$)
Это оставляет из всех повторяющихся строк последнее вхождение в файле.
Для этого не требуется сортировка, и повторяющиеся строки могут находиться в любом месте файла!
Вам нужно проверить параметры «Регулярное выражение» и обязательно удалите отметку с опции поиска “и новые строки”.
Вот подробный вид окна поиска для удаления дубликатов строк в Notepad++:
⇒ Общая ⇐
CISCO
Voice(AsteriskCisco)
Microsoft
Powershell
Python
SQLT-SQL
FreeBSD and Nix
1С
WEB Разработка
ORACLE SQL JAVA
Мото
В notepad++ довольно просто найти и удалить дубли строк
Для этого используйте шаблон:
Комментарии пользователей
Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!
у вас есть несколько вариантов…
в любом случае перед началом:
- откройте диалоговое окно” найти “(Ctrl + f) или” заменить ” (если вы знаете, что вы хотите сделать дальше),
- выберите переключатель “регулярное выражение”в левом нижнем углу диалогового окна.
- здесь, я буду предполагать, что вы ищете дубликаты шаблонов, таких как
variable >= something
илиhour >= NUM
. - кроме того, я в группе как можно больше, так что вы можете позже смогу замените путем держать, или бросать прочь, любую часть как нужно.
(1) Явное Найти
вы знаете дубликаты, и вы можете найти их явно, например:
((variable)s*>=s*S+)(.*)(s*>=s*S+)
или, для “час”, просто замените слово “переменная” на слово “час”:
((hour)s*>=s*S+)(.*)(s*>=s*S+)
объяснение:
каждый набор скобок, слева направо, – это группа. Поэтому, вы будете иметь следование:
Группа 1:((variable)s*>=s*S+)
: находит строку, начинающуюся с” variable”, за которой следует s
(пробел) и *
означает любое количество пробелов (следовательно, вы можете иметь “variable>=” или ” variable>=”), символы >=
дальше больше s*
(любые пробелы), затем, наконец, любой непространственный символ S+
(том +
говорит, что должен быть хотя бы один).
Группа 2:(variable)
: группа 2 находится в группе 1, и это просто способ извлечь имя “переменная”.
Группа 3:(.*)
: что-нибудь между двумя дубликатами вы найдете. Это позволяет сделать что-то с этим дополнительным текстом, если он существует.
Предупреждение, если есть трипликаты (или больше), это будет потребитель шаблоны в середине, делая group1 и group4 содержат только первый и последний дубликаты. Если вы хотите найти последовательные дубликаты, то измените эту часть на (.*?)
; the ?
делает его не жадным, т. е. найдет минимум .
(ничего).
4 группа:(s*>=s*S+)
: наконец, это дублировать. Причина его дубликат, потому что узор такой же, как и группы 1, Кроме того, он использует , это просто способ сказать, что находится в группе 2. В данном случае это слово “переменная”.
вторая картина для “часа” по мере того как вы увидите идентична, за исключением того, что он ищет “час”, а не”переменную”.
(2) Найти Неизвестные Повторяющиеся Узоры
С небольшими изменениями, вы можете искать любые дубликаты одного и того же шаблона:
((w+)s*>=s*S+)(.*)(s*>=s*S+)
объяснение:
это идентично поиску дубликатов с явно известными именами. Разница здесь заключается в использовании w+
(любые буквы и слова), а не слово “переменная”/”час”.
w+
:w
соответствует любому символу слова (включая прописные, строчные и цифры, но не знаки препинания или другие символы). The +
снова так сказать, по крайней мере, один. Поэтому, с w+
вы найдете любые буквы слова.
Зачастую вы имеете данные большого объема, строки которых повторяются в файле не один раз.
Поскольку дубли (повторения) – это лишний мусор и ненужные данные, то необходимо от них избавиться, и сделать это можно через программу Notepad++.
1. Итак, запустите программу и в верхнем меню нажмите «Plugins», пункты «Plugin Manager» – «Show Plugin Manager»:
После чего в открывшемся окне, во вкладке «Available» отметьте плагин «TextFX Characters» и нажмите «Install».
2. Как только плагин успешно установился (если нет – пишите об этом в комментариях), в пустое окно вставьте ваш текст с дублирующимися строками и нажмите комбинацию клавиш:
CTRL + A
Тем самым вы выделяете весь текст.
Перейдите в меню, раздел «TextFX», пункт «TextFX Tools». Проверьте, чтобы здесь стояла галочка у «Sort outputs only UNIQUE (at column) lines»:
Нажмите «Sort lines case insensitive (at column)». После этих действий дублирующиеся строки в вашем тексте будут удалены.
Обратите внимание, что способ не подойдет для новых версий программы, а также для программы, имеющей разрядность 64 бит.