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 ⬇️⬇️⬇️
I have multiple email addresses. I need to find and delete all (including found one). Is this possible in notepad++?
example:epshetsky@test.com,
rek4@test.com,
rajesh1239@test.com,
mohanraj@test.com,
sam@test.com,
nithin@test.com,
midhunvintech@test.com,
karthickgm27@test.com,
rajesh1239@test.com,
mohanraj@test.com,
nithin@test.com,
I need results back like
epshetsky@test.com,
rek4@test.com,
sam@test.com,
nithin@test.com,
midhunvintech@test.com,
karthickgm27@test.com,
How to do in notepad++?
I have these logs that I have to search through constantly and I would like to know if it’s possible to highlight duplicate text that is on the same line.
Let me give you an example
(CLIENT ID:3319) successfully posted to account (CLIENT ID:1323)
Now in my scenario, I am looking through the logs for 3319 to determine when CLIENT ID 3319 has successfully posted to their own ID.
(CLIENT ID:3319) successfully posted to account (CLIENT ID:3319)
When it does find that the ID duplicates in the second ID box, I want it to highlight and detect it as a duplicate.
asked Jul 18, 2016 at 21:06
8
You can use a search if regular expression:
- Ctrl+F
- Search Mode: Regular Expression (uncheck all other «Search Mode» Options)
- Find What:
CLIENT ID:(d+).*CLIENT ID:1 - Click in FindAll
This will list all lines that start and end with the same CLIENT ID
NOTE
If you want to filter only client 3319, replace the search by CLIENT ID:(3319).*CLIENT ID:1
to search only client 3319
answered Jul 18, 2016 at 21:14
guipivotoguipivoto
18.2k9 gold badges60 silver badges74 bronze badges
1
Хотя эта статья гордо и названа Регулярные выражения в notepad++, это скорее шпаргалка, для самого себя, а также может быть кому-то ещё, пригодится. Смысл её таков, что иногда мне бывает что-то поменять, добавить или удалить в тексте. Как и всякий ленивый человек, я пытаюсь этот процесс облегчить, ускорить, короче оптимизировать и автоматизировать.
Другими совами, я где-то когда-то узнал про регулярные выражения, попробовал, у меня получилось и мне понравилось. Теперь сталкиваясь с необходимостью указанной в первом абзаце, я начинаю вспоминать, а как я это сделал? Естественно благополучно не вспомнив, начинаю «лопатить» интернет в поисках ответа на свои «хотелки».
Основные регулярки
. — Точка представляет один любой символ
^ — Начало строки
$ — Конец строки
s — Пробел
S — Не Пробел
w — буква, цифра или подчёркивание _
d — Любая цифра
D — Любой символ, но не цифра
[0-9] — Любая цифра
[a-z] — Любая буква от a до z (весь латинский набор символов) в нижнем регистре
[A-Z] — Любая буква от a до z в ВЕРХНЕМ регистре
[a-zA-Z] — Любая буква от a до z в любом регистре
[a-Z] — То же самое
* — «Повторитель». Означает, что предшествующий символ может повторяться (0 или более раз)
.* — Абсолютно любой набор символов. Например, условие <p> .*</p> — найдет все что между тегами <p> </p>
(^.*$) — Любой текст между началом и концом строки
([0-9][0-9]*.) — ищет любые двухзначные в данном случае цифры
nr — Ищет пустые строки. Вроде как если оставить пустым окно «Заменить» то удаляет пустые строки, но можно поставить вот это
^s*$ — Ищет пустые строки содержащие пробел.
^[ ]*$ — Ищет пустые строки содержащие пробел.
Примеры:
Добавление знаков в начале и конце строки, абзаца
Допустим, необходимо некий текст, скопированный например из ворда, заключить в теги <p></p>
Ставим в «найти» — (^.*$) ищет соответственно начало и конец строки.
Ставим в «заменить на» — 1 и то, что нужно вставить в начало и конец строки, у нас в примере это <p></p>
Выражение будет иметь следующий вид:<p>1</p>. Как показано на рисунке 1. В дальнейшем нет нужды в рисунках, так они будут идентичны этому, с той лишь разницей, что выражения, там будут другие.
*** Прим. Добавление круглых скобок () в поле найти, обязательно, иначе будет убирать текст.
Добавление знаков в начале или в конце строки, абзаца
Допустим, необходимо некий текст, скопированный например из ворда, заключить в одиночный тег </br> это тег перевода строки, не всегда удобно и нужно оборачивать его в теги <p></p>. Ну я так считаю, возможно и неправильно, но допустим это стих, песня или анекдот, где все строчки короткие и каждая строка новая, мне нравится тут одиночный тег больше.
Для этого в поле «найти» вводим символ $ Конец строки, а в поле «заменить на» вводим нужный нам тег или что то другое, в данном случае тег </br> не забывая добавить 1, то есть выглядит это так — </br>1 . В данном случае мы только добавляем нужный нам тег, поэтому в круглые скобки в общем то, не нужны, но если поставить, также будет заменять корректно.
Аналогично можно добавлять что-нибудь и в начале строки, заменив в поле найти на символ ^ начала строки, наверное …
Как то возникла у меня необходимость удалить пустые строки в документах, и не только просто пустые но и содержащие пробелы. Всё бы ничего если бы это был один-два файла, есть в Notepad++ в операциях со строками такие функции как «Удалить пустые строки» и «Удалить пустые строки (Содер. символы Пробел)».
Но вот беда, мне нужно было это сделать где-то примерно в 25-28 файлах, и в принципе, это тоже нетрудно. Но, мы, же знаем регулярные выражения, подумал я и решил, процесс облегчить. Итак, суть в том, что в блокноте в «Поиске и Замена» есть кнопочка, «Заменить во всех Открытых документах», вот не неё и была вся моя надежда.
Поискав в интернете, долго ли коротко ли, отовсюду понемножку нашел информацию как это сделать, попробовал – получилось.
Поэтому пишу здесь, чтобы самому не забыть, и быть может другим подсказать.
Удаление пустых строк
В поле «найти» вводим nr — ищет пустые строки, вроде как если оставить пустым окно «Заменить» то удаляет пустые строки, но можно поставить вот это . Ну а далее всё просто открываем все файлы, которые нам нужно «почистить», вводим символы и жмём «Заменить во всех Открытых документах».
Результат: Во всех открытых документах, пустые строки, не содержащих пробелов удалены.
Удаление пустых строк, содержащих символы пробел
Тут работа происходит в два этапа, сначала удаляем символы Пробел, а потом пустые строки как это сделать указано в пункте 1.
Поэтому если есть и просто пустые строки и строки, содержащие символы Пробел, то рекомендую начать сразу с этого пункта, работы просто меньше, в смысле, сначала очищаем пустые строки от пробелов, а затем удаляем все строки, ведь теперь, хоть их и стало больше но они все «чистые».
В поле «найти» вводим ^[ ]*$ или ^s*$ — ищет пустые строки содержащие пробел (не знаю, может у кого-то с одним не получится набором, попробуйте с другим), аналогично вроде как, если оставить пустым окно «Заменить» то удаляет пробелы, но можно поставить вот это . Ну а далее всё просто открываем все файлы, которые нам нужно «почистить», вводим символы и жмём «Заменить во всех Открытых документах».
Результат: Во всех открытых документах, пустые строки очищены от пробелов.
Для удаления этих строк выполняем действия указанные в пункте 1.
Как удалить всё между двумя словами?
|
<span class=«tag»></description></span> <span class=«tag»><sales_notes></span><span class=«pln»>предоплата</span><span class=«tag»></sales_notes></span> <span class=«tag»><param</span> <span class=«atn»>name</span><span class=«pun»>=</span><span class=«atv»>«Тип УЗО»</span><span class=«tag»>></span><span class=«pln»>Выключатель</span><span class=«tag»></param></span> <span class=«tag»><param</span> <span class=«atn»>name</span><span class=«pun»>=</span><span class=«atv»>«Номинальный ток»</span> <span class=«atn»>unit</span><span class=«pun»>=</span><span class=«atv»>«А»</span><span class=«tag»>></span><span class=«pln»>16.0</span><span class=«tag»></param></span> <span class=«tag»><param</span> <span class=«atn»>name</span><span class=«pun»>=</span><span class=«atv»>«Степень защиты IP»</span><span class=«tag»>></span><span class=«pln»>20</span><span class=«tag»></param></span> <span class=«tag»><param</span> <span class=«atn»>name</span><span class=«pun»>=</span><span class=«atv»>«Тип монтажа»</span><span class=«tag»>></span><span class=«pln»>На DIN рейку</span><span class=«tag»></param></span> <span class=«tag»></offer></span> |
Найти: </description>([sS]*?)</offer>
Заменить на: </description></offer>
[sS]— любой символ, включая переносы строк, табуляцию и тд.;*?— «не жадный» режим — минимальное подходящее совпадение;
В сети много способов удаления в notepad++ всех строк, содержащих определённое слово. Большинство этих способов используют регулярные выражения, что крайне неудобно. Есть способ проще. Повторюсь, что речь идёт не об удалении просто слова, а всех строк, содержащих определённое слово. Дальше — пошаговая инструкция с картинками.
1. В notepad++ в открытом файле нажимаем Ctrl+f и ищем нужное слово во вкладке «Пометки»:
2. После этого все строки, содержащие нужное слово, будут помечены. После этого осталось их удалить. Для этого в меню Поиск — Закладки выбрать пункт «Удалить все строки с закладкой»:
Готово! Проще не придумаешь.
У меня есть больше ста html файлов в которых нужно заменить некоторые строки. Строки выглядят примерно так:
1. ABC 1111111111 DEF 222222222 GHI
2. ABC 3333333 DEF 33333333 GHI
3. И т.д.
Как сделать так, чтобы все строки такого вида: «ABC****DEF**** GHI» вне зависимости от количества цифр между буквами и их значений были заменены на одно и то же слово?
-
Вопрос задан08 нояб. 2022
-
188 просмотров
Пригласить эксперта
В notepad++ можно использовать регулярные выражения для поиска и замены.
Тебе нужно написать регулярное выражение, которое будет находить такой паттерн
открываешь нужные файлы + патерн/регэксп
там, в нотпеде++ есть/была строка =»применить ко всем открытым файлам»
я им уже давно не пользуюсь, как пересел на линух=Geny ± для моих нужд=не хуже,
но Notepad++ , программа, о которой можно сказать только хорошее.
да под вайном хдето есть
от чего досих пор не могу отказаться
сони вегас
≈фотожоп=тут дело практики/привычки Gimp не хуже
-
Показать ещё
Загружается…
25 мая 2023, в 05:30
1000 руб./за проект
25 мая 2023, в 05:14
5000 руб./за проект
25 мая 2023, в 02:38
1000 руб./за проект








