- Регулярные выражения в notepad++
- Добавление знаков в начале и конце строки, абзаца
- Добавление знаков в начале или в конце строки, абзаца
- Пункт 1. Удаления пустых строк
- Пункт 2. Удаления пустых строк, содержащих символы Пробел
- Применение регулярных выражений в программе Notepad++
- Понятие регулярных выражений
- Значения отдельных регулярных выражений
- Практическое использование регулярных выражений
- Пример 1: Поиск
- Пример 2: Замена символов
- Регулярные выражения в блокноте Notepad++
- Если не работает поиск с регулярными выражениями
- Макросы в Нотепад++
- Дополнительные примеры:
Регулярные выражения в notepad++
Хотя эта статья гордо и названа Регулярные выражения в notepad++, это скорее шпаргалка, для самого себя, а также может быть кому-то ещё, пригодится. Смысл её таков, что иногда мне бывает что-то поменять, добавить или удалить в тексте. Как и всякий ленивый человек, я пытаюсь этот процесс облегчить, ускорить, короче оптимизировать и автоматизировать.
Другими совами, я где-то когда-то узнал про регулярные выражения, попробовал, у меня получилось и мне понравилось. Теперь сталкиваясь с необходимостью указанной в первом абзаце, я начинаю вспоминать, а как я это сделал? Естественно благополучно не вспомнив, начинаю «лопатить» интернет в поисках ответа на свои «хотелки».
Это небольшое отступление к тому, что если вы знаете регулярные выражения и умеете ими пользоваться, это статья не для вас, но спасибо, что заглянули, возможно, в комментарии укажите более простой способ если только. Итак, не претендуя на сколь ни будь значимость, и важность приступим, помолясь.
Прошу прощения за несколько сумбурность сей статьи, она будет набираться, обновляться и дополняться, как мне на душу легло, а не как вам, кажется, должно быть.
√ . — Точка представляет один любой символ
√ \w — буква, цифра или подчёркивание _
√ \D — Любой символ, но не цифра
√ [a-z] — Любая буква от a до z (весь латинский набор символов) в нижнем регистре
√ [A-Z] — Любая буква от a до z в ВЕРХНЕМ регистре
√ [a-zA-Z] — Любая буква от a до z в любом регистре
√ [a-Z] — То же самое
√ * — «Повторитель». Означает, что предшествующий символ может повторяться (0 или более раз)
√ .* — Абсолютно любой набор символов. Например, условие
— найдет все что между тегами
√ (^.*$) — Любой текст между началом и концом строки
√ (38*.) — ищет любые двухзначные в данном случае цифры
√ \n\r — Ищет пустые строки. Вроде как если оставить пустым окно «Заменить» то удаляет пустые строки, но можно поставить вот это \0
√ ^\s*$ — Ищет пустые строки содержащие пробел.
√ ^[ ]*$ — Ищет пустые строки содержащие пробел.
Добавление знаков в начале и конце строки, абзаца
Допустим, необходимо некий текст, скопированный например из ворда, заключить в теги
Ставим в «найти» — (^.*$) ищет соответственно начало и конец строки.
Ставим в «заменить на» — \1 и то, что нужно вставить в начало и конец строки, у нас в примере это
Выражение будет иметь следующий вид:
. Как показано на рисунке 1. В дальнейшем нет нужды в рисунках, так они будут идентичны этому, с той лишь разницей, что выражения, там будут другие.
*** Прим. Добавление круглых скобок () в поле найти, обязательно, иначе будет убирать текст.
Добавление знаков в начале или в конце строки, абзаца
Допустим, необходимо некий текст, скопированный например из ворда, заключить в одиночный тег это тег перевода строки, не всегда удобно и нужно оборачивать его в теги
. Ну я так считаю, возможно и неправильно, но допустим это стих, песня или анекдот, где все строчки короткие и каждая строка новая, мне нравится тут одиночный тег больше.
Для этого в поле «найти» вводим символ $ Конец строки, а в поле «заменить на» вводим нужный нам тег или что то другое, в данном случае тег не забывая добавить \1, то есть выглядит это так — \1 . В данном случае мы только добавляем нужный нам тег, поэтому в круглые скобки в общем то, не нужны, но если поставить, также будет заменять корректно.
Аналогично можно добавлять что-нибудь и в начале строки, заменив в поле найти на символ ^ начала строки, наверное .
Как то возникла у меня необходимость удалить пустые строки в документах, и не только просто пустые но и содержащие пробелы. Всё бы ничего если бы это был один-два файла, есть в Notepad++ в операциях со строками такие функции как «Удалить пустые строки» и «Удалить пустые строки (Содер. символы Пробел)».
Но вот беда, мне нужно было это сделать где-то примерно в 25-28 файлах, и в принципе, это тоже нетрудно. Но, мы, же знаем регулярные выражения, подумал я и решил, процесс облегчить. Итак, суть в том, что в блокноте в «Поиске и Замена» есть кнопочка, «Заменить во всех Открытых документах», вот не неё и была вся моя надежда.
Поискав в интернете, долго ли коротко ли, отовсюду понемножку нашел информацию как это сделать, попробовал – получилось.
Поэтому пишу здесь, чтобы самому не забыть, и быть может другим подсказать.
Пункт 1. Удаления пустых строк
В поле «найти» вводим \n\r — ищет пустые строки, вроде как если оставить пустым окно «Заменить» то удаляет пустые строки, но можно поставить вот это \0. Ну а далее всё просто открываем все файлы, которые нам нужно «почистить», вводим символы и жмём «Заменить во всех Открытых документах».
Результат: Во всех открытых документах, пустые строки, не содержащих пробелов удалены.
Пункт 2. Удаления пустых строк, содержащих символы Пробел
Тут работа происходит в два этапа, сначала удаляем символы Пробел, а потом пустые строки как это сделать указано в пункте 1.
Поэтому если есть и просто пустые строки и строки, содержащие символы Пробел, то рекомендую начать сразу с этого пункта, работы просто меньше, в смысле, сначала очищаем пустые строки от пробелов, а затем удаляем все строки, ведь теперь, хоть их и стало больше но они все «чистые».
В поле «найти» вводим ^[ ]*$ или ^\s*$ — ищет пустые строки содержащие пробел (не знаю, может у кого-то с одним не получится набором, попробуйте с другим), аналогично вроде как, если оставить пустым окно «Заменить» то удаляет пробелы, но можно поставить вот это \0. Ну а далее всё просто открываем все файлы, которые нам нужно «почистить», вводим символы и жмём «Заменить во всех Открытых документах».
Результат: Во всех открытых документах, пустые строки очищены от пробелов.
Для удаления этих строк выполняем действия указанные в пункте 1.
Применение регулярных выражений в программе Notepad++
Программирование – довольно сложный, кропотливый, и, зачастую, монотонный процесс, в котором не редко приходится повторять одни и те же или похожие действия. Чтобы максимально автоматизировать и ускорить поиск и замену похожих элементов в документе, в программировании была изобретена система регулярных выражений. Она в значительной мере позволяет сэкономить время и силы программистов, веб-мастеров, а иногда и представителей других профессий. Давайте выясним, как регулярные выражения применяются в продвинутом текстовом редакторе Notepad++.
Понятие регулярных выражений
Прежде чем приступить к изучению применения регулярных выражений в программе Notepad++ на практике, давайте подробнее узнаем суть данного термина.
Регулярные выражения – это особенный язык поиска, применяя который можно производить различные действия над строками документа. Делается это при помощи специальных метасимволов, при вводе которых производится поиск и выполнение манипуляций по принципу шаблонов. К примеру, в Notepad++ точка в виде регулярного выражения представляет любой знак из всего множества существующих символов, а выражение [A-Z] – любую заглавную букву латинского алфавита.
В различных языках программирования синтаксис регулярных выражений может отличаться. В текстовом редакторе Notepad++ используются те же значения регулярных выражений, что и в популярном языке программирования Perl.
Значения отдельных регулярных выражений
Теперь познакомимся с наиболее часто употребляемыми в программе Notepad++ регулярными выражениями:
- . – любой единичный символ;
- 6 – любой символ в виде цифры;
- \D – любой символ, кроме цифры;
- [A-Z] – любая заглавная буква латинского алфавита;
- [a-z] – любая строчная буква латинского алфавита;
- [a- Z]- любая из букв латинского алфавита в независимости от регистра;
- \w – буква, подчеркивание или цифра;
- \s – пробел;
- ^ — начало строчки;
- $ — окончание строчки;
- * — повторение символа (от 0 до бесконечности);
- \4 \1 \2 \3 – порядковый номер группы;
- ^\s*$ — поиск пустых строк;
- (63*.) – поиск двузначных чисел.
На самом деле существует довольно большое количество символов регулярных выражений, и охватить их в одной статье невозможно. Значительно больше их различных вариации, которые программисты и веб-дизайнеры применяют при работе с программой Notepad++.
Практическое использование регулярных выражений
Теперь давайте на конкретных примерах разберемся, как применяются регулярные выражения в программе Notepad++.
Пример 1: Поиск
Рассмотрим, как применяются регулярные выражения для поиска определенных элементов.
- Чтобы начать работу с регулярными выражениями, переходим в раздел «Поиск» и в появившемся списке выбираем пункт «Найти».
Найдем все цифры, содержащиеся в документе. Для этого в строку поиска вводим параметр 6 и жмем на кнопку «Искать далее». При каждом нажатии по данной кнопке будет подсвечиваться следующая цифра, встречающаяся в документе сверху вниз. Переключение на режим поиска снизу вверх, который имеется возможность осуществлять при использовании обычного способа поиска, при работе с регулярными выражениями не может быть применено.
Если нажать на кнопку «Найти все в текущем документе», все результаты поиска, то есть цифровые выражения в документе, будут выведены в отдельном окне.
А вот и результаты поиска, выведенные построчно.
Пример 2: Замена символов
В программе Notepad++ можно не только производить поиск символов, но и выполнять их замену с помощью регулярных выражений.
- Для запуска данного действия переходим во вкладку «Заменить» окна поиска.
Сделаем перенаправление внешних ссылок через редирект. Для этого в графе «Найти» проставляем значение «href=.(http://[^’»]*)», а в поле «Заменить» — «href=»/redirect.php?to=1″». Жмем на кнопку «Заменить всё».
А теперь давайте применим поиск с заменой при помощи регулярных выражений для операций не связанных с компьютерным программированием или версткой веб-страниц.
- Имеем список лиц в формате ФИО с датами рождения.
Переставим даты рождения и имена людей местами. Для этого в графе «Найти» пишем «(\w+) (\w+) (\w+) (\d+.\d+.\d+)», а в графе «Заменить» — «\4 \1 \2 \3». Жмем на кнопку «Заменить всё».
Как видим, замена выполнена успешно.
Мы показали самые простые действия, которые можно выполнить, используя регулярные выражения в программе Notepad++. Но с помощью данных выражений профессиональные программисты осуществляют и довольно сложные операции.
Регулярные выражения в блокноте Notepad++
Регулярные выражения, в нашем любимом блокноте Нотепад++, представляют из себя довольно мощный инструмент в борьбе с рутиной.
Стандартные обозначения символов:
. – Точка представляет один любой символ
* – «Повторитель». Означает, что предшествующий символ может повторяться
.* – Абсолютно любой набор символов. «.*» – найдёт все подстроки между кавычками
^ – начало строки (если исп. В начале выражения)
$ – конец строки
\w – буква, цифра или подчёркивание _
\d – Любая цифра
\D – Любой символ, но не цифра
\s — Пробел
\S — Не Пробел
\n – Перенос на новую строку.
8 – Любая цифра
[a-z] – Любая буква от a до z (весь латинский набор символов) в нижнем регистре
[A-Z] – Любая буква от a до z в ВЕРХНЕМ регистре
[a-zA-Z] – Любая буква от a до z в любом регистре
[a-Z] – То же самое
[abc]* – найдёт идущие подряд символы из набора. Например, abracadabra
[^abc]* – с точностью до наоборот. abracadabra
[abc] – перечень символов. Совпадёт с буквами a, b, или с
[^abc] – перечень символов, которые не входят в диапазон. Совпадёт с любым, кроме a, b, или с
(^.*$) — Любой текст между началом и концом строки
\n\r — Ищет пустые строки.
^\s*$ или ^[ ]*$ – Ищет пустые строки содержащие пробел
\(\d*\) – Поможет удалить скобки с цифрами из текста скопированного с данными вордстата, например: «(67)»
Если не работает поиск с регулярными выражениями
Возможно вы просто забыли их включить, надо поставить галку «Регуляр. выражения» в разделе «Режим поиска».
Макросы в Нотепад++
Не забывайте о том, что в функционал блокнота входит замечательный простой инструмент запись и запуск макроса, что в сочетании с регулярными выражениями может сильно помочь — ускорить рутинную работу!
Дополнительные примеры:
Например чтобы быстро убрать в конце предложения ненужные цифры вида «:987654»
Нужно использовать выражение:»:\d*»
Найти строку со ссылкой на сайт:
Несовпадение референса у часов: