logo помогаю бизнесу зарабатывать больше.
Связаться
Введите название услуги:

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

20 марта 2023 в 14:35 Важные статьи

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

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

Например, если вы хотите найти все слова, которые начинаются на букву “a”, вы можете использовать выражение ^a\w*, где ^ соответствует началу строки, a – первой букве слова, \w – любой букве или цифре, а * – нулю или более повторениям предыдущего символа.

Для замены текста в Notepad с использованием регулярных выражений, вы можете использовать знак $ для ссылки на подвыражения, заданные в скобках. Например, если вы хотите заменить все даты в формате “DD/MM/YYYY” на даты в формате “YYYY-MM-DD”, вы можете использовать выражение поиска (\d{2})/(\d{2})/(\d{4}), а выражение замены – $3-$2-$1, где $3, $2 и $1 ссылки на третье, второе и первое подвыражения соответственно.

Зачем нужны Регулярные выражения Notepad

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

  1. Поиск и замена текста по заданному шаблону: регулярные выражения могут быть использованы для поиска и замены текста, соответствующего определенному шаблону. Например, если вы хотите заменить все повторяющиеся слова на одно слово, вы можете использовать регулярное выражение для поиска всех повторяющихся слов и замены их на одно.
  2. Форматирование текста: регулярные выражения могут быть использованы для форматирования текста. Например, вы можете использовать их для добавления или удаления пробелов, табуляции, переносов строк и других элементов форматирования.
  3. Извлечение информации: регулярные выражения могут быть использованы для извлечения информации из текстового документа. Например, вы можете использовать регулярные выражения для извлечения всех адресов электронной почты из большого списка контактов.
  4. Проверка валидности введенных данных: регулярные выражения могут быть использованы для проверки валидности введенных пользователем данных. Например, вы можете использовать регулярные выражения для проверки правильности введенного номера телефона или адреса электронной почты.

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

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

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

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

2016-03-14_141721

В качестве исходных данных мне нужно удалить все выражение, вида:
[php]
{phocagallery view=category|categoryid=13|imageid=209|float=left}
[/php]

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

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

2016-03-14_142454

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

2016-03-14_142545

Исходя из скриншота видно, что фразы {phocagallery view=category|categoryid=13|imageid=209|float=left} выстроились таким образом, что каждая начинается с новой строчки.

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

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

2016-03-14_142832

[php]

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

[/php]

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

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

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

  1. Откройте документ в Notepad.
  2. Нажмите Ctrl+H, чтобы открыть окно “Найти и заменить”.
  3. В поле “Найти” введите следующее регулярное выражение: ^\s+$ Это выражение ищет строки, состоящие только из одного или нескольких символов пробела.
  4. Оставьте поле “Заменить” пустым.
  5. Убедитесь, что в поле “Режим замены” выбрано “Обычный”.
  6. Нажмите кнопку “Заменить все”.

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

Обратите внимание, что это удалит только строки, состоящие из символов пробела. Если строки содержат другие пробельные символы, такие как табуляция или перенос строки, то вам может потребоваться изменить регулярное выражение, чтобы оно соответствовало этим символам. Например, для удаления строк, содержащих любые пробельные символы, вы можете использовать регулярное выражение ^\s*$, которое ищет строки, состоящие из любых пробельных символов.

Другой вариант:

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

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

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

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

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


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


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


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


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


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

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

2016-04-20_073212

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

Оставить заявку
По любым вопросам пишите мне в мессенджеры .
Написать в WhatsApp
+7 (925) 444-48-89
Написать в Telegram
@max_webs
Ваша цена
Предложите свою цена за товар или услугу. Пишите мне в мессенджеры или оставьте заявку в данной форме.
Написать в WhatsApp
+7 (925) 444-48-89
Написать в Telegram
@max_webs
[contact-form-7 id="22192" title="Универсальная форма"]
[contact-form-7 id="114828" title="Рассчитать стоимость"]

Представительство Max-Webs в других городах:

There are no products