1. Главная страница » Компьютеры » Notepad регулярные выражения в поиске

Notepad регулярные выражения в поиске

Автор: | 16.12.2019

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

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

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

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

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

найдет любой текст между тегами

(^.*$) Любой текст между началом и концом строки

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

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

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

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

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

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

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

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

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

Читайте также:  Gigabyte ga 946gmx s2 характеристики

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

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

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

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

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

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

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

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

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

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

рисунок 3

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

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

    Закрываем notepad++;

Открываем файл config.xml (%User%Application DataRoamingNotepad++config.xml) или как-то так .

У меня полный путь выглядит так — C:UsersUserAppDataRoamingNotepad++config.xml , здесь все зависит от вашей ОС, а также от способа установки Notepad++, может быть файл где сохраняется история находится непосредственно в директории программы;

  • Удаляем всё что между тегами – рисунок 4.
  • Сохраняем изменения, закрываем блокнот;
  • Открываем notepad++ без истории.
  • рисунок 4

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

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

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

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

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

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

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

    • . – любой единичный символ;
    • [0-9] – любой символ в виде цифры;
    • D – любой символ, кроме цифры;
    • [A-Z] – любая заглавная буква латинского алфавита;
    • [a-z] – любая строчная буква латинского алфавита;
    • [a- Z]- любая из букв латинского алфавита в независимости от регистра;
    • w – буква, подчеркивание или цифра;
    • s – пробел;
    • ^ — начало строчки;
    • $ — окончание строчки;
    • * — повторение символа (от 0 до бесконечности);
    • 4 1 2 3 – порядковый номер группы;
    • ^s*$ — поиск пустых строк;
    • ([0-9][0-9]*.) – поиск двузначных чисел.
    Читайте также:  3D принтер для производства

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

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

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

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

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

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

    Найдем все цифры, содержащиеся в документе. Для этого в строку поиска вводим параметр [0-9] и жмем на кнопку «Искать далее». При каждом нажатии по данной кнопке будет подсвечиваться следующая цифра, встречающаяся в документе сверху вниз. Переключение на режим поиска снизу вверх, который имеется возможность осуществлять при использовании обычного способа поиска, при работе с регулярными выражениями не может быть применено.

    Если нажать на кнопку «Найти все в текущем документе», все результаты поиска, то есть цифровые выражения в документе, будут выведены в отдельном окне.

    А вот и результаты поиска, выведенные построчно.

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

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

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

    Сделаем перенаправление внешних ссылок через редирект. Для этого в графе «Найти» проставляем значение «href=.(http://[^’»]*)», а в поле «Заменить»«href=»/redirect.php?to=1″». Жмем на кнопку «Заменить всё».

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

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

    Переставим даты рождения и имена людей местами. Для этого в графе «Найти» пишем «(w+) (w+) (w+) (d+.d+.d+)», а в графе «Заменить» — «4 1 2 3». Жмем на кнопку «Заменить всё».

    Как видим, замена выполнена успешно.

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

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

    Хотя эта статья гордо и названа Регулярные выражения в notepad++, это скорее шпаргалка, для самого себя, а также может быть кому-то ещё, пригодится. Смысл её таков, что иногда мне бывает что-то поменять, добавить или удалить в тексте. Как и всякий ленивый человек, я пытаюсь этот процесс облегчить, ускорить, короче оптимизировать и автоматизировать.

    Другими совами, я где-то когда-то узнал про регулярные выражения, попробовал, у меня получилось и мне понравилось. Теперь сталкиваясь с необходимостью указанной в первом абзаце, я начинаю вспоминать, а как я это сделал? Естественно благополучно не вспомнив, начинаю «лопатить» интернет в поисках ответа на свои «хотелки».

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

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

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

    w — буква, цифра или подчёркивание _

    D — Любой символ, но не цифра

    [a-z] — Любая буква от a до z (весь латинский набор символов) в нижнем регистре

    [A-Z] — Любая буква от a до z в ВЕРХНЕМ регистре

    [a-zA-Z] — Любая буква от a до z в любом регистре

    [a-Z] — То же самое

    * — «Повторитель». Означает, что предшествующий символ может повторяться (0 или более раз)

    .* — Абсолютно любой набор символов. Например, условие

    — найдет все что между тегами

    (^.*$) — Любой текст между началом и концом строки

    ([0-9][0-9]*.) — ищет любые двухзначные в данном случае цифры

    — Ищет пустые строки. Вроде как если оставить пустым окно "Заменить" то удаляет пустые строки, но можно поставить вот это

    Читайте также:  Ip адрес роутера netgear

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

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

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

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

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

    Ставим в "заменить на" — 1 и то, что нужно вставить в начало и конец строки, у нас в примере это

    Выражение будет иметь следующий вид:

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

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

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

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

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

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

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

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

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

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

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

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

    В поле "найти" вводим

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

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

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

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

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

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

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

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

    Добавить комментарий

    Ваш e-mail не будет опубликован. Обязательные поля помечены *