Время чтения: 2 мин. 24 февраля 2019 в 22:06 Блог веб-разработчика
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5
Загрузка...

Регулярные выражения Notepad++ с примерами. Табуляция. Поиск и замена по маске.

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

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

Возможности Нотпед ++

.  «Точка» представляет один любой символ;

^  Начало строки;

$  Конец строки;

^$  пустая строка (начало и конец, между которыми пусто);

.+  любая не пустая строка;

\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]*.)   ищет любые цифры, в данном случае двухзначные цифры;

\n  Ищет символ новой строки;

\r  Ищет пустые строки содержащий символы «перевод каретки» ;

^$  Ищет пустые строки

\n\r  Ищет пустые строки содержащий символы — символ новой строки и «перевод каретки»

\s  Ищет класс пробельных символов. К пробельным символам относятся пробел, символ табуляции, возврат каретки, символ новой строки и символ перевода страницы. То же самое, что и [ \t,\r,\n,\f];

\S  Ищет класс не пробельных символов. То же самое, что и [^ \t, \r,\n,\f];

^\s*$  Ищет пустые строки содержащие пробел;

^[ ]*$   Ищет пустые строки содержащие пробел;

^Слово   Ищет слово «Слово» в начале строки;

Слово$   Ищет слово «Слово» в конце строки;

\bдол   Ищет набор символов «том», только в начале слов, то есть в слове Долина будет найдено, а в слове Подол нет;

дол\b   Ищет набор символов «дол», только в конце слов, то есть в слове Долина не будет найдено, а в слове Подол да;

\B дол \B   Ищет набор символов «том», не в начале и не в конце слов, то есть в слове Долина не будет найдено, и в слове Подол нет, а вот в слове Подольск будет найдено;

|  — Регулярное выражение, «или».  Будет искать то что слева и справа.

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

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

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

Ставим в «найти» — (^.*$) ищет соответственно начало и конец строки.

Ставим в «заменить на» — \1 и то, что нужно вставить в начало и конец строки, у нас в примере это <p></p>

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

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


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

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

Для этого в поле «найти» вводим символ $ Конец строки, а в поле «заменить на» вводим нужный нам тег или что то другое, в данном случае тег </br> не забывая добавить \1, то есть выглядит это так — </br>\1 . В данном случае мы только добавляем нужный нам тег, поэтому в круглые скобки в общем то, не нужны, но если поставить, также будет заменять корректно.

Аналогично можно добавлять что-нибудь и в начале строки, заменив в поле найти на символ ^ начала строки, наверное …

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

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

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

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


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

В поле «найти» вводим \n\r — ищет пустые строки, вроде как если оставить пустым окно «Заменить» то удаляет пустые строки, но можно поставить вот это \0. Ну а далее всё просто открываем все файлы, которые нам нужно «почистить», вводим символы и жмём «Заменить во всех Открытых документах».

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

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

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

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

В поле «найти» вводим ^[ ]*$ или ^\s*$ — ищет пустые строки содержащие пробел (не знаю, может у кого-то с одним не получится набором, попробуйте с другим), аналогично вроде как, если оставить пустым окно «Заменить» то удаляет пробелы, но можно поставить вот это \0. Ну а далее всё просто открываем все файлы, которые нам нужно «почистить», вводим символы и жмём «Заменить во всех Открытых документах».

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

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


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


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


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


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


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

В строки найти вставляем: (^.*$)
В строки заменить на вставляем: «\1»

2016-04-20_073212-1024x552 Регулярные выражения Notepad++ с примерами. Табуляция. Поиск и замена по маске.

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

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

Похожие статьи

Давайте знакомиться!
Я в социальных сетях, добавляйтесь!
Написать мне
У вас появился вопрос? Предложение? Пишите, я отвечу вам в течение 10 минут, в рабочее время.
Ваше имя * Ваш e-mail* Ваш сайт Сообщение * Прикрепите файл, если требуется
Степень загрузки
В данном разделе представлена моя занятость в данный момент. Данные обновляются каждый день. Вся работа выполняется по предварительной записи и 20% предоплатой от стоимости проекта.
низкая загрузка. выполняется ~5 заказов. старт работ через 5 дней.
средняя загрузка. выполняется ~15 заказов. старт работ через 15 дней.
высокая загрузка. выполняется более 25 заказов. старт работ через 25 дней.
Получить коммерческое предложение
Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.
Введите ваше имя * Введите контактный телефон * Введите контактный e-mail * Какая услуга Вас интересует? * Допонительные услуги Комментарий
Получить коммерческое предложение
Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.
Введите ваше имя * Введите контактный телефон * Введите контактный e-mail * Какая услуга Вас интересует? * Допонительные услуги Комментарий
Получить консультацию
Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.
Введите ваше имя * Введите контактный телефон * Введите контактный e-mail * Комментарий
Получить консультацию
Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.
Введите ваше имя * Введите контактный телефон * Введите контактный e-mail * Комментарий
[contact-form-7 404 "Not Found"]
[contact-form-7 404 "Not Found"]
Начать сотрудничество
Заполните поля ниже. Я лично перезвоню Вам в течении 15 минут для обсуждения деталей.
Введите ваше имя * Введите контактный телефон * Введите контактный Email для отправки точной стоимости
или позвоните мне по телефону +7-499-70-300-44
Получить консультацию
Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.
Введите ваше имя * Введите контактный телефон * Введите контактный e-mail * Комментарий
[contact-form-7 404 "Not Found"]
Рассчитать стоимость
Заполните поля ниже. Я свяжусь с Вами в течении 15 минут в рабочее время для обсуждения деталей
Введите контактный телефон * Введите контактный e-mail * Опишите ваш вопрос для того чтобы я мог рассчитать стоимость Прикрепить файл,если необходимо
Получить коммерческое предложение
Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.
Введите ваше имя * Введите контактный телефон * Введите контактный e-mail * Какая услуга Вас интересует? * Допонительные услуги Комментарий
Рассчитать стоимость
Заполните поля ниже. Я свяжусь с Вами в течении 15 минут в рабочее время для обсуждения деталей
Введите контактный телефон * Введите контактный e-mail * Опишите ваш вопрос для того чтобы я мог рассчитать стоимость Прикрепить файл,если необходимо
Запись на бесплатный урок
Введите ваше имя, телефон и Skype логин и email. Я свяжусь с Вами для уточнения времени прохождения урока.
Введите контактный телефон * Введите ваше Skype логин * Введите контактный E-mail * Выберите программу
Введите ваше имя * Введите контактный email * Опишите ваш вопрос в произвольной форме Прикрепить файл,если необходимо
Заказать сайт
Первые 14 дней бесплатно. Оставьте номер email и контактный телефон. Я лично перезвоню Вам в течении 10 минут, для обсуждения деталей.

Ваш email Введите контактный телефон Комментарий или вопрос
Проблемы с оплатой?
Опишите ситуацию. Когда возникает проблема? Что планируете купить?
Введите ваше имя * Введите контактный email * Что необходимо доработать
Скачать чек-лист
Заполните поля ниже. В течении 10 минут на указанный e-mail будет отправлена ссылка на скачивание чек-листа.
Введите ваше имя * Введите контактный E-mail *
Предварительная запись для получения скидки
Введите ваше имя, телефон и Skype логин и email. Я свяжусь с Вами для уточнения деталей прохождения курса.
С кого числа Вам удобней начать обучение в 2019 году? Введите контактный телефон * Введите контактный E-mail * Выберите программу
Курс SEO для интернет-магазинов

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

Особенности продвижения интернет-магазинов, специфика оптимизации. Как избавить себя от рутинной оптимизации каждой страницы и в 1 клик оптимизировать до 10 000 тыс товаров.

А также вы в разы увеличите продажи, значительно снизите стоимость клика и стоимость заявки, в перспективе сможете отказаться от контексной рекламы (только для акций), откроете новые горизонты.

И да, все это урок за уроком я лично расскажу Вам и помогу внедрить.

Длительность обучения 30 дней.

Запись на бесплатный урок
Введите ваше имя, телефон и Skype логин и email. Я свяжусь с Вами для уточнения времени прохождения урока.
Введите контактный телефон * Введите ваше Skype логин * Введите контактный E-mail * Выберите программу
Курс SEO для корпоративных сайтов

Данный курс поможет вашему бизнесу получить новых клиентов из органического трафика.

А также вы в разы увеличите продажи, значительно снизите стоимость клика и стоимость заявки, в перспективе сможете отказаться от контексной рекламы (только для акций), откроете новые горизонты.

И да, все это урок за уроком я лично расскажу Вам и помогу внедрить.

Длительность обучения 20 дней.

Запись на бесплатный урок
Введите ваше имя, телефон и Skype логин и email. Я свяжусь с Вами для уточнения времени прохождения урока.
Введите контактный телефон * Введите ваше Skype логин * Введите контактный E-mail * Выберите программу
Курс SEO для Landing Page

Данный курс - находа для вас, если вы хотите увеличить трафик или не хотите использовать контекстную рекламу для продвижения своего продукта или услуги.

Курс научит Вас оптимизировать и продвигать одностраничные сайты.

И да, все это урок за уроком я лично расскажу Вам и помогу внедрить.

Длительность обучения 1 день.

Запись на бесплатный урок
Введите ваше имя, телефон и Skype логин и email. Я свяжусь с Вами для уточнения времени прохождения урока.
Введите контактный телефон * Введите ваше Skype логин * Введите контактный E-mail * Выберите программу
Курс SEO для самостоятельного обучения

В закрытом разделе моего сайта весь курс представлен в текстовом/видео формате. Если вы желаете обучаться самостоятельно по актуальным данным которые работают в данный момент (поскольку данную информацию я обновляю сразу по мере изменений от поисковых систем) этот курс для вас.

Вы шаг за шагом приведете свой сайт в порядок и сможете увеличить трафик на 500% минимум!!!

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

Получить консультацию
Я свяжусь с Вами в течении 10 минут и отвечу на все Ваши вопросы.
Введите ваше имя * Введите контактный телефон * Введите контактный e-mail * Комментарий
Я работаю в городе Москва, но работу строю удаленно, и ваш город Абакан, Абинск, Аксай, Александровское, Алексин, Альметьевск, Анапа, Ангарск, Апшеронск, Арзамас, Армавир, Архангельск, Ачинск, Балаково, Балашиха, Балашов, Барнаул, Батайск, Белая Калитва, Белгород, Белореченск, Березники, Бийск, Благовещенск, Благодарный, Борисоглебск, Братск, Бронницы, Брюховецкая, Брянск, Бугульма, Буденновск, Бузулук, Великие Луки, Великий Новгород, Владивосток, Владикавказ, Владимир, Волгоград, Волгодонск, Волжский, Вологда, Волхов, Воркута, Воронеж, Воскресенск, Выборг, Выкса, Выселки, Гатчина, Геленджик, Георгиевск, Горно Алтайск, Грозный, Губкин, Гудермес, Гуково, Гусь Хрустальный, Десногорск, Дзержинск, Димитровград, Дмитров, Домодедово, Донецк, Ейск, Екатеринбург, Елец, Ессентуки, Железногорск, Железногорск Красноярский край, Железнодорожный, Зеленоград, Зеленокумск, Иваново, Ивантеевка, Ижевск, Изобильный, Ипатово, Иркутск, Йошкар Ола, Казань, Калуга, Каменск Шахтинск, Камышин, Каневская, Кашира, Кемерово, Кинешма, Кириши, Киров, Клин, Клинцы, Ковров, Коломна, Комсомольск на Амуре, Кореновск, Королёв, Кострома, Котлас, Красногорск, Краснодар, Красноярск, Крымск, Кстово, Кузнецк, Курган, Курганинск, Курск, Кущевская, Лабинск, Ленинградская, Ленинск Кузнецкий, Ливны, Липецк, Лобня, Лысьва, Лыткарино, Люберцы, Москва, Магнитогорск, Майкоп, Междуреченск, Миасс, Миллерово, Минеральные воды, Михайловск, Мичуринск, Можайск, Мончегорск, Морозовск, Мостовской, Мурманск, Муром, Мытищи, Набережные Челны, Назрань, Нальчик, Находка, Невинномысск, Нерюнгри, Нефтекамск, Нефтекумск, Нефтеюганск, Нижневартовск, Нижнекамск, Нижний Новгород, Нижний Тагил, Новоалександровск, Новокузнецк, Новомосковск, Новороссийск, Новосибирск, Новочеркасск, Новошахтинск, Норильск, Ноябрьск, Нягань, Одинцово, Октябрьский, Омск, Орёл, Оренбург, Орехово Зуево, Орск, Отрадная, Павловская, Павловский Посад, Пенза, Пермь, Петрозаводск, Петропавловск Камчатский, Подольск, Приморско Ахтарск, Прокопьевск, Псков, Пушкино, Пятигорск, Раменское, Реутов, Россошь, Ростов на Дону, Рыбинск, Рязань, Санкт Петербург, Сальск, Самара, Саранск, Саратов, Саянск, Светлоград, Северодвинск, Северская, Сергиев Посад, Серов, Серпухов, Славянск на Кубани, Смоленск, Солнечногорск, Сочи, Ставрополь, Староминская, Старый Оскол, Стерлитамак, Сургут, Сызрань, Сыктывкар, Таганрог, Тамбов, Тверь, Темрюк, Тимашевск, Тихвин, Тихорецк, Тобольск, Тольятти, Томск, Трудобеликовский, Тула, Тюмень, Улан Удэ, Ульяновск, Усинск, Усолье Сибирское, Уссурийск, Усть Илимск, Усть Лабинск, Уфа, Ухта, Фрязино, Хабаровск, Ханты Мансийск, Чебоксары, Челябинск, Череповец, Чехов, Чита, Шахты, Шелехов, Щёлково, Электросталь, Энгельс, Южно Сахалинск, Якутск, Ярославльи регионАмурская область, Камчатский край, Приморский край, Республика Саха Якутия, Сахалинская область, Хабаровский край, Кировская область, Нижегородская область, Оренбургская область, Пензенская область, Пермский край, Республика Башкортостан Октябрьский и Нефтекамск, Республика Башкортостан Уфа, Республика Марий Эл, Республика Мордовия, Республика Татарстан, Республика Татарстан Казань, Республика Удмуртия, Республика Чувашия, Самарская область, Саратовская область, Ульяновская область, Архангельская область, Вологодская область, Мурманская область, Новгородская область, Псковская область, Республика Карелия, Республика Коми Воркута и Усинск, Республика Коми Сыктывкар, Республика Ингушетия, Республика Кабардино Балкария, Республика Северная Осетия Алания, Ставропольский край, Чеченская Республика, Алтайский край, Забайкальский край, Иркутская область, Кемеровская область, Красноярский край, Красноярский край Норильск, Новосибирская область, Омская область, Республика Алтай, Республика Бурятия, Республика Хакасия, Томская область, Курганская область, Свердловская область, Тюменская область, Ханты Мансийский АО, Челябинская область, Ямало Ненецкий АО, Белгородская область, Брянская область, Владимирская область, Воронежская область, Ивановская область, Калужская область, Костромская область, Курская область, Липецкая область, Орловская область, Рязанская область, Смоленская область, Тамбовская область, Тверская область, Тульская область, Ярославская область, Волгоградская область, Краснодарский край, Республика Адыгея, Ростовская область,не имеет значения.