• Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.
Иконка ресурса

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

*Immortal Pony*

Заблокирован
Заблокирован
Победитель в номинации 2019
Победитель в номинации 2018
Победитель в номинации 2016
Победитель в номинации 2015
Сообщения
1 680
Розыгрыши
0
Репутация
1 222
Реакции
801
Баллы
1 283
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Регулярные выражения в Notepad++
ИСТОЧНИК СДУЛСЯ

notelogo-1180x380.jpg




Просто решил поделиться данной статьей в надежде, что она кому-то поможет, ничего сверх естественного тут нет

Однажды я столкнулся с очень не простой проблемой: имелось очень большое количество хаотичного текста(ну очень большое, около 1 млн. символов) и задача состояла в том, чтобы среди этого текста найти все десятизначные номера начинающиеся на определенные цифры, например, на 46. Да найти их не просто так, а составить список этих номеров в отдельном файле.

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

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

В моих руках был только всеми любимый Notepad++, и я в глубине своего сознания понимал, что этот редактор способен на удивительные вещи, в том числе и решить мою задачу, особенно когда в поиске я увидел галочку “Регулярные выражения”. И тут я начал усердно гуглить, и в целом нашел следующие выражения, которые можно вставить в строку поиска:

. – Точка представляет один любой символ
* – «Повторитель». Означает, что предшествующий символ может повторяться
.* – Абсолютно любой набор символов. “.*” – найдёт все подстроки между кавычками
^ – начало строки (если исп. В начале выражения)
$ – конец строки
\w – буква, цифра или подчёркивание _
\d – Любая цифра
\D – Любой символ, но не цифра
\s — Пробел
\S — Не Пробел
\n – Перенос на новую строку.
[0-9] – Любая цифра
[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*$ или ^[ ]*$ – Ищет пустые строки содержащие пробел

Это конечно помогло мне только найти сами номера:

note_1_f_improf_647x470.jpg


Но как мне найти сразу все и скопировать это еще в отдельный файл? Изучая меню “Поиск” и саму форму поиска наткнулся на две гениальные вещи:

1. В форме поиска на вкладке “Пометки” можно выделить все строки закладкой(синий кружок на полях), в которых мы нашли искомые числа.

2. “Поиск” – “Управление закладками” – “Копировать все строки с закладками” – это дает возможность скопировать все помеченные закладкой строки в буфер обмена.

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

note_2_f_improf_644x469.jpg


Давайте разберем, что же я тут сделал:

Я выполнил поиск по маске – 46[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] - необходимое число и заменил его тем же числом, но уже со вставкой новой строки спереди и сзади – \n. Чтобы выделить данные, которые будут вставляться при замене используются скобки, а непосредственно для вставки этих данных/<порядковый номер скобок>(в данном случае \1, так как у нас весь результат помещен в единственные скобки).

Объясню по-другому, если у нас есть выражение, например, (234)546(321), то \1 = 234, а \2 = 321. И так далее, в зависимости от количества скобок.

Осталось самое простое, помечаем закладками все результаты:

note_3_f_improf_653x477.jpg


Кстати, скобки уже в этом поиске не так уж важны.

Далее копируем все закладки через меню “Поиск“:

note_4_f_improf_657x541.jpg


И вставляем(Ctrl-V) результат куда вам будет угодно.

note_41_f_improf_667x487.jpg


Удивительно просто, не так ли?)

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

Назад
Сверху Снизу