Notepad регулярные выражения замена

Обновлено: 04.07.2024

Notepad++ стал моим первым профессиональным инструментом в веб-разработке и создании сайтов.

В Notepad++, среди прочего, большое внимание уделяется собственному языку регулярных выражений.
Зная как обозначить запрос специальными поисковыми операторами, в Notepad++ можно реализовывать довольно серьезные задачи и работать с большими массивами данных.

Регулярные выражения Notepad++

Регулярные выражения могут использоваться в Notepad++ для множества логических операция: сортировка строк, удаление дубликатов, поиск и замена как отдельных символов, так и целых логических конструкций. По сути горизонт возможностей такого функционала не ограничен и зависит только от вашей фантазии по его применению.
Я позволил себе отсортировать регулярные выражения для Notepad++ в порядке их надобности и популярности использования. ?

Примеры и применение регулярных выражений в Notepad++

Согласитесь, весь этот список на вид звучит довольно нудно и напоминает что-то среднее между высшей математикой и программированием. ? Мне стоит привести примеры использования регулярных выражений и символов Notepad++.

Удалить пустые строки в Notepad++

Либо, что конечно же проще, если ваше выражение больше никаких условий не требует, воспользуйтесь пунктом в меню. Edit => Line Operations => Remove empty lines . Там же есть и пункт для удаления пустых строк с пробелом: Containing Blank Characters .

Удалить всё после символа / перед символом в строке в Notepad++

Регулярное выражение удаление всех данных в строке до определенного символа, или их группы я часто использую, например, при сортировке маркетинговых баз с e-mail.

Для того чтобы в Notepad++ удалить всё в строке перед определенным символом, используйте комбинацию .+(искомая-часть). Давайте я разберу подробнее. Например, у нас есть txt файл с почтовыми адресами коллег, по одному адресу в столбик. Кроме того в этой же строке могут содержаться и ФИО человека через пробел, табирование, или через запятую.

И таких контактов с списке у нас 500. Для того чтобы отделить домены, нам понадобится 2 действия в Notepad++, удалить всё в строках до определенного символа, а затем удалить всё в строках после.

Первая регулярное выражение для нас будет .+(@), в поле замены оставляем пустым.

Удалить дубликаты строк в Notepad++

Удаление дубликатов строк в Notepad++ это вообще отдельная большая тема. Мало кто знает как сконфигурировать поисковой запрос в текстовом редакторе и удалить повторяющиеся строки исключительно через Notepad++, не прибегая к помощи плагинов и сторонних расширений.

Важно, чтобы все галочки в поиске у вас были включены. И зациклить поиск, и применять регулярные выражения, тогда Notepad++ точно сработает как надо, и удалит из документа дубли строк.

Второй способ избавится от дублирования строк

Второй способ удалить дубликаты строк с помощью Notepad++ абсолютно не элегантен, но функционален при ежедневном использовании. Навигатор по репозиторию дополнений встроен прямо в ваш Notepad. Просто ставим плагин через меню Plugins => Plugin manager .
Нужный нам плагин называется TextFx Characters.
Не слишком сложно, правда? Устанавливаются плагины автоматически, нужно будет только перезагрузить утилиту. Жмёте установить и активировать.

Функционал плагина местами дублирует многие регулярные выражения в Notepad++, а по-моему мнению собственно на них и основан.

Настройка для удаления дубликатов строк находится в меню: Textfx => Tools => Sort Lines insensetive .

Не забудьте выделить данные в редакторе, перед тем как нажимать.

Notepad++: плагины и альтернативы.

Что касается альтернатив, Notepad++ любят за регулярные выражения, легкость, простоту и бесплатность. Такое сочетание вообще, пожалуй, единственное в этом кластере, потому лично я не вижу прямых конкурентов и альтернатив для Notepad.

P.S. Если вам была полезна эта статья, оставьте коммент, и я буду знать что двигаюсь в правильном направлении. Или задавайте вопросы! welcome ⬇️⬇️⬇️

Сайт обходится мне в копеечку, и как видите - здесь нет рекламы.
Понравилась статья?
Переведите хотя бы 10 руб:-)
P.S. Если нажать на номер карты - он скопируется!


Фотограф, блогер, специалист по рекламе в интернете. В прошлом веб-дизайнер/разработчик. Веду своё шоу в VK Клипах, люблю рок, джаз, Стивена Кинга и Харуки Мураками.

Регулярные выражения в приложении Notepad++

Программирование – довольно сложный, кропотливый, и, зачастую, монотонный процесс, в котором не редко приходится повторять одни и те же или похожие действия. Чтобы максимально автоматизировать и ускорить поиск и замену похожих элементов в документе, в программировании была изобретена система регулярных выражений. Она в значительной мере позволяет сэкономить время и силы программистов, веб-мастеров, а иногда и представителей других профессий. Давайте выясним, как регулярные выражения применяются в продвинутом текстовом редакторе Notepad++.

Понятие регулярных выражений

Прежде чем приступить к изучению применения регулярных выражений в программе Notepad++ на практике, давайте подробнее узнаем суть данного термина.

Регулярные выражения – это особенный язык поиска, применяя который можно производить различные действия над строками документа. Делается это при помощи специальных метасимволов, при вводе которых производится поиск и выполнение манипуляций по принципу шаблонов. К примеру, в Notepad++ точка в виде регулярного выражения представляет любой знак из всего множества существующих символов, а выражение [A-Z] – любую заглавную букву латинского алфавита.

В различных языках программирования синтаксис регулярных выражений может отличаться. В текстовом редакторе Notepad++ используются те же значения регулярных выражений, что и в популярном языке программирования Perl.

Значения отдельных регулярных выражений

Теперь познакомимся с наиболее часто употребляемыми в программе Notepad++ регулярными выражениями:

На самом деле существует довольно большое количество символов регулярных выражений, и охватить их в одной статье невозможно. Значительно больше их различных вариации, которые программисты и веб-дизайнеры применяют при работе с программой Notepad++.

Практическое использование регулярных выражений

Теперь давайте на конкретных примерах разберемся, как применяются регулярные выражения в программе Notepad++.

Пример 1: Поиск

Рассмотрим, как применяются регулярные выражения для поиска определенных элементов.

    Чтобы начать работу с регулярными выражениями, переходим в раздел «Поиск» и в появившемся списке выбираем пункт «Найти».

Переход в окно поиска в программе Notepad++

Включение регулярных выражений в окне поиска в программе Notepad++

Поиск цифр в программе Notepad++

Запуск поиска с выводом результатов в отдельном окне в программе Notepad++

Пример 2: Замена символов

В программе Notepad++ можно не только производить поиск символов, но и выполнять их замену с помощью регулярных выражений.

    Для запуска данного действия переходим во вкладку «Заменить» окна поиска.

Переход во вкладку Заменить в программе Notepad++

Замена в программе Notepad++

Результаты замены в программе Notepad++

А теперь давайте применим поиск с заменой при помощи регулярных выражений для операций не связанных с компьютерным программированием или версткой веб-страниц.

    Имеем список лиц в формате ФИО с датами рождения.

Список лиц в программе Notepad++

Перестановка мест в списке в программе Notepad++

Мы показали самые простые действия, которые можно выполнить, используя регулярные выражения в программе Notepad++. Но с помощью данных выражений профессиональные программисты осуществляют и довольно сложные операции.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Как применять регулярные выражения в Notepad++, подробно показано вот здесь.

. Точка. Обозначает любой символ
\ Экранирующий символ. Символы которые экранируются: ^, [, ., $,
^ Крышка. Начало строки
$ Конец строки
\d Любая цифра
\D Не цифра
\s Пробел, табуляция, перенос строки
\S Не пробел
\w Любая буква латиницы, цифра, или знак подчёркивания
\W Не латиница, не цифра, не подчёркивание
| Или. Соединяет несколько вариантов
\b Граница слова. Применяется когда нужно выделить, что искомые символы являются словом, а не частью другого слова
\B Не граница слова
\ Начало слова
\> Конец слова
\A Начало текста
\Z Конец текста
* Повторитель. Означает что предшествующий символ может работать 0 и более раз
+ Количество предшествующего не менее 1-го.
? Ограничитель. Не более одного раза
[ ] В квадратных скобках задаются символы к поиску, например [a-яА-Я], или 5
[^ ] Исключает из поиска символы указанные в квадратных скобках
() В круглые скобки заключаются все комбинации с "или" и поиск начала и конца строк
В фигурных скобках указывается точное количество вхождений, например если надо две цифры, то \d, если две или четыре, то \d, если четыре и более, то
\n Новая строка

Шаблоны регулярных выражений

Заключить каждую строку в теги html, кавычки, скобки


Найти:
(^.*$)
Заменить на:
<p>\1</p> Можно вместо тега или кавычки, или скобки. Если не сработает, то попробуйте добавить перед ними символ экранирования

Убрать все теги html, вместе с содержимым, оставить только текст между открывающим и закрывающим тегом

Найти даты написанные в формате дд месяц гггг г., остальное убрать

Найти дату со слешем, например: 20/5/2020, остальное убрать

Найти даты в формате дд.мм.гггг и дд-мм-гггг, остальное убрать

Найти всё между кавычек

Найти всё между скобок

Найти все адреса электронной почты, а остальное всё убрать

Удалить всё, оставив только ссылки

Найти почтовый индекс, а остальное убрать

Поменять местами ФИО и дату рождения. Например "Кузнецов Андрей Николаевич 26.10.1983", на "26.10.1983 Кузнецов Андрей Николаевич"

Перенести буквы в начало, в выражениях формата 6465C, 498558JR, 1286458975KTD и т.д.

Удалить атрибут с разными URL

Заменить один html тег на другой, открывающую и закрывающую части

Удалить всё в строке после определённого символа или слова, вместе с ним

Удалить всё после символа использующегося и в регулярных выражениях, например *

Сделать перенос строки перед каждой заглавной буквой

Удалить из ссылки всё, кроме домена

Убрать всю табуляцию

Удалить все комментарии из html кода

Удалить все комментарии из CSS кода

Удалить все комментарии вида // из PHP кода.

Привести к одному размеру все находящиеся в открытых файлах картинки


Найти:
<img width="(\d+)" height="(\d+)" src="">
Заменить на:
<img width="(200)" height="(200)" src="">

Удалить в строке всё после пробела

Удалить во всех строках всё до определённого символа, например до ?

Удалить все строки в которых определённое число символов, например меньше 100

Удалить все запятые, после которых идёт буква или пробел, но не цифра

Найти и, если надо, удалить время в формате ММ:СС. Актуально для стенограмм и расшифровок видео

Взять в круглые скобки время в формате ММ:СС, находящееся в любой части текста

Добавить в каждую пустую строку

Отредактировать расшифровку видео

1. Убираем раскадровку по времени

2. Объединяем предложения, с разделением пустой строкой

Найти все фрагменты кода расположенные между двумя словами

Регулярное выражение – это шаблон текста, который состоит из обычных символов (например, букв от а до я) и специальных символов, известных как метасимволы. Шаблон задает правила поиска и может осуществлять различные манипуляции с текстом.

Далее приведены метасимволы и их значение, а затем уже примеры применения.

Mетасимволы и их значение

Mетасимволы и их значение
Символ Описание
. Точка представляет один любой символ
^ Начало строки
$ Конец строки
^$ Пустая строка (начало и конец, между которыми пусто)
.+ Любая не пустая строка
\s Пробел
\S Не Пробел
\w Буква, цифра или подчеркивание
\d Любая цифра
\D Любой символ, но не цифра
2 Любая цифра
[a-z] Любая буква от a до z (латинский набор символов) в нижнем регистре 1
[а-я] Любая буква от a до я (русский набор символов) в нижнем регистре 1
[A-Z] Любая буква от a до z в ВЕРХНЕМ регистре 1
[А-Я] Любая буква от А до Я в ВЕРХНЕМ регистре 1
* «Повторитель». Означает, что предшествующий символ может повторяться (0 или более раз)
.* Абсолютно любой набор символов. Например, условие <p>.*</p> найдет любой текст между тегами <p> </p>
(^.*$) Любой текст между началом и концом строки

Примеры применения метасимволов для поиска

Примеры применения метасимволов для поиска
Пример Описание
(93*.) ищет любые цифры, в данном случае двухзначные цифры
\n ищет символ новой строки
\r ищет пустые строки содержащий символы «перевод каретки»
^$ ищет пустые строки
\n\r ищет пустые строки содержащий символы – символ новой строки и «перевод каретки»
\s ищет класс пробельных символов. К пробельным символам относятся пробел, символ табуляции, возврат каретки, символ новой строки и символ перевода страницы. То же самое, что и [ \t,\r,\n,\f]
\S ищет класс не пробельных символов. То же самое, что и [^ \t,\r,\n,\f]
^\s*$ ищет пустые строки содержащие пробел 2
^[ ]*$ ищет пустые строки содержащие пробел 2
^Тест ищет слово Тест в начале строки
Тест$ ищет слово Тест в конце строки
\bтом ищет набор символов том только в начале слов, то есть в слове Томск будет найдено, а в слове Потом нет
том\b ищет набор символов том только в конце слов, то есть в слове Томск не будет найдено, а в слове Потом будет
\Bтом\B ищет набор символов том не в начале и не в конце слов, то есть в слове Томск не будет найдено, и слово Потом также будет проигнорировано, а вот в словах Автоматизация , Хрестоматия будет найдено
Маша|Оля ищет все заданные слова в тексте. Например, нужно найти определенные имена в тесте - Маша и Оля, вечером собирались в кино, но встретив Сашу и Пашу, Маша ушла с Пашей на концерт, а Оля с Сашей решили погулять в парке. Найдет все слова Маша и Оля, то есть четыре совпадения.

1, 2 Часть примеров уже устарела, notepad++ совершенствуется и часть примеров делается стандартными командами. Например, конструкции вида [а-яА-Я] - искать в любом из регистров потеряли смысл, а явное указание на регистр при снятом чек-боксе будет проигнорировано и будут найдены все вхождения в верхнем и нижнем регистрах.

«Удалить пустые строки содержащие пробел» сейчас выполняется через меню «Правка» – «Операции со строками». Но с их помощью можно разрабатывать свои шаблоны поиска и замены.

Примеры применения регулярных выражений для поиска и замены

Поиск и замена с помощью регулярных выражений в notepad++

Рисунок 1. Графическое изображение примера поиска поиска и замены абзаца

Важное отступление

Если в шаблоне поиска («Найти») встречаются символы схожие с метасимволами, то их нужно экранировать квадратными скобками. Например, в искомом тексте нужно найти именно вот такое сочетание 123*456, то есть в нём есть символ *, тогда в поле «Найти» должно быть 123[*]456. В противном случае, будет искаться сочетание вида 1233456, так как * означает повторитель.

В примере «Поиск фразы только в середине текста», точка в в ред. Федерального закона не экранирована, так как в данном случае не принципиально будет искаться именно точка или любой другой символ.
Если предположить, что в тексте могут быть фразы вроде - в ред: Федерального закона и такие фразы нужно не учитывать при поиске, то тогда, точку следует указать явно -
^.* в ред[.] Федерального закона .*$.

3 Пример может сначала показаться лишенным смысла, так как эти же самые условия можно получить просто указав в ред. Федерального закона, однако возможно вам необходимо:

  • чтобы поиск не учитывал фразу в ред. Федерального закона, если именно с неё начинается строка;
  • чтобы поиск не учитывал фразу в ред. Федерального закона, если именно ей оканчивается строка;
  • вы собираетесь до и после искомой фразы добавить что-то такое эдакое, например начало новой строки, чтобы в дальнейшем заменить её ещё на что-либо.

В этих случаях, простой поиск уже не сработает. Хотя возможно это выражение можно сократить или как то усовершенствовать.

Удалить все предложения, в которых стоит запятая после первого слова

Необходимо удалить все предложения, в которых стоит запятая после первого слова в этом предложении.

Поиск и замена с помощью регулярных выражений в notepad++

Рисунок 2. Удалить все предложения, в которых стоит запятая после первого слова

Как очистить историю «поиска» в Notepad++

Давно пользуюсь «поиском и заменой», и столько же меня раздражала одна маленькая особенность, с которой я мирился до поры до времени.

А именно, то, что редактор ведет историю «поиска и замены», и при следующем поиске – автоматически предлагает ей (историей) воспользоваться , что безусловно очень удобно в рамках правки одного документа. Все заготовки как говорится «под рукой», не нужно ничего вводить заново.

Однако не всегда это является плюсом, порой после этот список весьма обширен, но уже совершенно не нужен и лишь отвлекает. Раньше старался просто не обращать внимания на эти мелкие неудобства.

Как очистить историю «поиска» в Notepad++

рисунок 3

Недавно узнал как очистить список истории «поиска и замены», не скажу что этот способ очень быстрый и удобный, но может быть кому-то пригодится.

Вернее он кажется долгим, так как нужно идти в скрытый каталог, там что искать. Однако если где-нибудь сохранить путь к файлу, то процесс этот занимает секунд 30 примерно.

Наверняка любой, даже самый непродвинутый пользователь ПК, умеет осуществлять поиск и замену строк к тексте. В общем случае необходимо указать строку, которую нужно заменить, и строку, на которую будет производится замена. Этого достаточно для достижения самых простых целей.

Но иногда хочется большего — не просто заменить, а, например, изменить структуру строк.

Более сложная цель

Рассмотрим задачу, с которой я столкнулся в процессе своей работы. Мне кажется этот пример в достаточной мере раскрывает суть текущей темы.

Итак, в процессе разработки сайта, у меня появилась необходимость удалить из таблицы большое количество записей. Структура таблицы следующая:

2016-03-14_141721

Удалять пришлось в несколько этапов, поскольку 1 регулярным выражением не удалось решить проблему.

1. Перенос исходного кода на новую строку

2016-03-14_142454

После выполнения функции, получаем код вида:

2016-03-14_142545

Исходя из скриншота видно, что фразы выстроились таким образом, что каждая начинается с новой строчки.

2. Удаляем их.

Удалять пришлось в несколько этапов с помощью кода и его модификаций:

2016-03-14_142832

phocagallery view=category.categoryid=\d\d.imageid=\d\d\d.float=left
phocagallery view=category.categoryid=\d\d\d.imageid=\d\d\d\d.float=left

В конце осталось удалить только скобки <> обычной заменой, которые с помощью регулярного выражения удалить нельзя.

Возможности Notepad ++

  • . «Точка» представляет один любой символ;
  • ^ Начало строки;
  • $ Конец строки;
  • ^$ пустая строка (начало и конец, между которыми пусто);
  • .+ любая не пустая строка;
  • \s Пробел;
  • \S Не Пробел
  • \w буква, цифра или подчёркивание _;
  • \d Любая цифра;
  • \D Любой символ, но не цифра;
  • 9 Любая цифра;
  • [a-z] Любая буква от a до z (весь латинский набор символов) в нижнем регистре;
  • [A-Z] Любая буква от A до Z в ВЕРХНЕМ регистре;
  • [a-zA-Z] или [a-Z] Любая буква от a до z в любом регистре;
  • * «Повторитель». Означает, что предшествующий символ может повторяться (0 или более раз);
  • .* Абсолютно любой набор символов. Например, условие <p> .*</p> найдет все что между тегами <p> </p>;
  • (^.*$) Любой текст между началом и концом строки;
  • (84*.) ищет любые цифры, в данном случае двухзначные цифры;
  • \n Ищет символ новой строки;
  • \r Ищет пустые строки содержащий символы «перевод каретки» ;
  • ^$ Ищет пустые строки
  • \n\r Ищет пустые строки содержащий символы — символ новой строки и «перевод каретки»
  • \s Ищет класс пробельных символов. К пробельным символам относятся пробел, символ табуляции, возврат каретки, символ новой строки и символ перевода страницы. То же самое, что и [ \t,\r,\n,\f];
  • \S Ищет класс не пробельных символов. То же самое, что и [^ \t, \r,\n,\f];
  • ^\s*$ Ищет пустые строки содержащие пробел;
  • ^[ ]*$ Ищет пустые строки содержащие пробел;
  • ^ Слово Ищет слово «Слово» в начале строки;
  • Слово $ Ищет слово «Слово» в конце строки;
  • \b дол Ищет набор символов «том», только в начале слов, то есть в слове Долина будет найдено, а в слове Подол нет;
  • дол \b Ищет набор символов «дол», только в конце слов, то есть в слове Долина не будет найдено, а в слове Подол да;
  • \B дол \B Ищет набор символов «том», не в начале и не в конце слов, то есть в слове Долина не будет найдено, и в слове Подол нет, а вот в слове Подольск будет найдено;
  • | — Регулярное выражение, «или». Будет искать то что слева и справа.

Другие примеры работы:

Добавление знаков в начале и конце строки, абзаца

Допустим, необходимо некий текст, скопированный например из ворда, заключить в теги <p></p>

Выражение будет иметь следующий вид:<p>\1</p>. Как показано на рисунке 1. В дальнейшем нет нужды в рисунках, так они будут идентичны этому, с той лишь разницей, что выражения, там будут другие.

*** Прим. Добавление круглых скобок () в поле найти, обязательно, иначе будет убирать текст.

Добавление знаков в начале или в конце строки, абзаца

Допустим, необходимо некий текст, скопированный например из ворда, заключить в одиночный тег </br>это тег перевода строки, не всегда удобно и нужно оборачивать его в теги <p></p>. Ну я так считаю, возможно и неправильно, но допустим это стих, песня или анекдот, где все строчки короткие и каждая строка новая, мне нравится тут одиночный тег больше.

Как то возникла у меня необходимость удалить пустые строки в документах, и не только просто пустые но и содержащие пробелы. Всё бы ничего если бы это был один-два файла, есть в Notepad++ в операциях со строками такие функции как «Удалить пустые строки» и «Удалить пустые строки (Содер. символы Пробел)».

Но вот беда, мне нужно было это сделать где-то примерно в 25-28 файлах, и в принципе, это тоже нетрудно. Но, мы, же знаем регулярные выражения, подумал я и решил, процесс облегчить. Итак, суть в том, что в блокноте в «Поиске и Замена» есть кнопочка, «Заменить во всех Открытых документах», вот не неё и была вся моя надежда.

Поискав в интернете, долго ли коротко ли, отовсюду понемножку нашел информацию как это сделать, попробовал – получилось.

Поэтому пишу здесь, чтобы самому не забыть, и быть может другим подсказать.

Пункт 1. Удаления пустых строк

Результат: Во всех открытых документах, пустые строки, не содержащих пробелов удалены.

Пункт 2. Удаления пустых строк, содержащих символы Пробел

Тут работа происходит в два этапа, сначала удаляем символы Пробел, а потом пустые строки как это сделать указано в пункте 1.

Поэтому если есть и просто пустые строки и строки, содержащие символы Пробел, то рекомендую начать сразу с этого пункта, работы просто меньше, в смысле, сначала очищаем пустые строки от пробелов, а затем удаляем все строки, ведь теперь, хоть их и стало больше но они все «чистые».

Результат: Во всех открытых документах, пустые строки очищены от пробелов.

Для удаления этих строк выполняем действия указанные в пункте 1.

Найти (^.*$) Заменить \1\n\r — находит новую строку и добавляет к ней пустую строку;

Найти (^.*$) Заменить <p>\1</p> — находит новую строку и заключает её в теги <p></p>;

Найти \n\r Заменить «оставляем пустым» — Удаляет пустые строки

круглые скобки обязательны, иначе найденное будет изменено на заменяемое.

Массово добавить в начало и в конец строки любой символ

Читайте также: