Регулярные выражения (RegEx) Нотепад++: общие принципы и примеры

Регулярные выражения значительно облегчают жизнь не только IT-специалиста, вебмастера, но и продвинутого пользователя компьютера. Если вы хотите ускорить свою работу, связанную с обработкой больших данных, то стоит однажды разобраться с принципами RegEx, и каждый раз, когда нужно заменить однотипный текст, вырезать или найти текст по заданному шаблону, вы будете экономить свое время. Используют регулярные выражения в Notepad++, Visial Studio Code, Atom и других редакторах кода, в Excel при использовании VBA, а также в таблицах Гугл (по умолчанию), в некоторых плагинах вордпрес и т.д.

Что такое регулярные выражения RegEx

Регулярные выражения - это специальные шаблоны по которым выполняется поиск, замена текста или набора символов, а также такие операции, как извлечение и проверку на соответствие. Используется во всех языках программирования, например, в JavaScript, Python, Java и других.

Шпаргалка по значениям регулярных выражений

Эта таблица поможет составить свои регулярные выражения на основе специальных общепринятых шаблонов.

RegExЧто делаетПример
аНайти букву a
abcНайти последовательность символов abc
[ab]Найти любую из букв набора [ab], т.е. или a или bНапример, задав поиск по шаблону [дср], будут найдены слова сота, рота, дота.
[a-z]Поиск любого символа в диапазоне от a до z[a-f] находит любой из строчных символов, который лежит в диапазоне от a до f
Для поиска любой буквы русского алфавита нужно задать регулярное выражение:
[А-Яа-яЁё]
[^x]Найти все буквы, цифры, символы, кроме буквы x[^aeiou] Находит все символы, не являющиеся латинскими гласными, включая знаки препинания, цифры и пробелы.
?Предыдущий элемент является необязательным, он не обязательно должен присутствовать[1-9][0-9]? Находит числа от 
1 до 9 и от 10 до 99
.Найти любой символ, кроме 
новой строки
перевода строки
возврата каретки
+Найти предыдущий элемент от 1 до бесконечности1+ находит 1, 11, 111 и т.д.
*Найти предыдущий элемент от 0 до бесконечности раз[a-zA-Z]*cat находит строки, заканчивающиеся на 
cat, в том числе и просто cat
{x,y}Повторите предыдущий элемент от x до y раз.1{2,4} находит числа 11, 111 и 1111
(…)Сохраните все, что находится внутри скобок, для использования при замене.Пример, если нужно оставить некоторое сочетание символов при замене, то заключаем это сочетание в круглые скобки, а в строке замены пишем \1 \2 или $2 $1, присваивая порядковый номер круглым скобкам. Таким образом можно менять символы местами (как частный случай использования).
\1 \2 \3Восстановить строку, сохраненную в скобках, для использования при замене\1ый добавляет 
ый к сохраненной строке
(.|.)Оператор ИЛИПоиск (с|р|кв)ота найдет слова сота, рота, квота
\wСочетание клавиш для символов слова (буквы, цифры и подчеркивания)Не подходит для русского алфавита, для поиска русских букв нужно пользоваться диапазонами [А-Яа-яЁё]
\dСокращение для цифр, то же самое, что [0-9]
\bОзначает начало или конец словаНапример, рег выражение \bбар\b будет находить только слова бар и Бар, а также слово бар со сзнаками препинаниями после (Бар.) и игнорировать такие слова, как баран, барабан, амбар.
\Экранирующий оператор, используется чаще всего для знаков препинания, символов, кавычек\. находит точку .
\? находит знак вопроса
\+ находит +
\sнаходит пробел
\Wнаходит не букву
\Dпоиск не цифру
\Bне граница слова
\A и \Zначало и конец текста соответственно
^начало строки^\d.+ находит все строки, начало которых начинается на цифру
$конец строки!$ - находит все восклицательные знаки в конце строки.
\nновая строка, перенос строкив нотепад часто работает не просто \n, а \r\n

Примеры рабочих шаблонов регулярных выражений

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

  1. Убрать перенос строки
    • В Нотепад работает два варианта поиска переноса строки, а именно \n или \r\n
      Для того, чтобы убрать перенос строк, необходимо в строчку "Найти" вписать \r\n, а в строчку "Заменить на" поставить пробел, чтобы текст не слился.
      Не забудьте поставить флажок на режиме поиска "Расширенный" или "Регулярные выражения".
    • Таким же образом можно сжать код, но в этом случае не нужно в строке "Заменить на" ставить пробел.
  2. Делаем переносы строк
    Иногда нужна обратная операция - из слитного текста сделать построчный текст. Например, нужно сделать переносы строк перед словом "Ответ".
    Найти: Ответ
    Заменить на: \nОтвет
  3. Вырезать html-коды из текста.
    Найти: [<].*?>
    Заменить на: пустая строка
  4. Найти дату формата dd.mm.yyyy
    Найти: \d{2}\.\d{2}\.\d{4}
  5. Поиск email-адресов
    рег. выражение: [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
  6. Поиск номеров банковских карт платежной системы Мир.
    RegEx: 220[0|2](\d{9,12}|\s\d{4}\s\d{4}\s\d{4})
    * Ищет номера карт, которые начинаются с 2200 или 2202 и имеют вид 2200 XXXX XXXX XXXX или 2202XXXXXXXXXXXX
  7. Найти ссылки изображений
    В этом вам поможет регулярное выражение: (https|http).+.(png|jpg|gif)
  8. Найти ссылки
    (https|http).+.(ru|com|info|net)[\\.+]?
  9. Найти дату формата yyyy-mm-dd и привести ее в привычный краткий формат вида dd.mm.yyyy
    Найти: (\d{4})-(\d{2})-(\d{2})
    Замена: \3.\2.\1
  10. Поиск телефонных номеров в Notepad++:
    \+?\d{1,3}[-.\s]?\d{3}[-.\s]?\d{3}[-.\s]?\d{2,4}[-.\s]?\d{2}?
    Ищет номера, записанные разными способами: +7 XXX XXX XX XX и +XXXXXXXXXXX, и 8-XXX-XX-XX и т.д.
  11. Удаление лишних пробелов (сдвоенных, строенных и т.д.)
    Найти: \s{2,}
    Заменить на: пусто
  12. Удаление пустых строк
    Найти: \r?\n\r?\n
    Замена: \n
  13. Как обернуть каждую строку в теги или в кавычки (другие знаки препинания):
    Поиск рег выражения: ^(.+)$
    Замена на: <b>\1</b>

Как пользоваться RegEx в Нотепад

Чтобы воспользоваться быстрым поиском и заменой при помощи рег выражений в Notepad++, необходимо воспользоваться горячими клавишами CTRL + H или выбрать команды из меню: Поиск > Замена. Для корректной работы обязательно установите флажок возле режима поиска "Регуляр. выражения". Введите регулярные выражения в строки "Найти" и "Заменить на". Для поиска нажмите на кнопка "Найти далее", для замены первого найденного элемента "Заменить", а для замены во всем документе - "Заменить все".

Использование RegEx в Гугл таблицах

В таблицах Google можно использовать замену при помощи специальной формулы =REGEXREPLACE("текст или ячейка";"регулярное выражение";"фрагмент для замены").

Пример использования: =REGEXREPLACE(A1;"\.ru";"\.сom") - замена домена в зоне ru на com

Оцените статью
Добавить комментарий