егулярное выражение – это шаблон текста, который состоит из обычных символов (например, букв от а до я) и специальных символов, известных как метасимволы. Шаблон задает правила поиска и может осуществлять различные манипуляции с текстом.
Далее приведены метасимволы и их значение, а затем уже примеры применения.
Mетасимволы и их значение
| Символ | Описание |
|---|---|
| . | Точка представляет один любой символ |
| ^ | Начало строки |
| $ | Конец строки |
| ^$ | Пустая строка (начало и конец, между которыми пусто) |
| .+ | Любая не пустая строка |
| \s | Пробел |
| \S | Не Пробел |
| \w | Буква, цифра или подчеркивание |
| \d | Любая цифра |
| \D | Любой символ, но не цифра |
| [0-9] | Любая цифра |
| [a-z] | Любая буква от a до z (латинский набор символов) в нижнем регистре 1 |
| [а-я] | Любая буква от a до я (русский набор символов) в нижнем регистре 1 |
| [A-Z] | Любая буква от a до z в ВЕРХНЕМ регистре 1 |
| [А-Я] | Любая буква от А до Я в ВЕРХНЕМ регистре 1 |
| * | «Повторитель». Означает, что предшествующий символ может повторяться (0 или более раз) |
| .* | Абсолютно любой набор символов. Например, условие <p>.*</p> найдет любой текст между тегами <p> </p> |
| (^.*$) | Любой текст между началом и концом строки |
Примеры применения метасимволов для поиска
| Пример | Описание |
|---|---|
| ([0-9][0-9]*.) | ищет любые цифры, в данном случае двухзначные цифры |
| \n | ищет символ новой строки |
| \r | ищет пустые строки содержащий символы «перевод каретки» |
| ^$ | ищет пустые строки |
| \n\r | ищет пустые строки содержащий символы – символ новой строки и «перевод каретки» |
| \s | ищет класс пробельных символов. К пробельным символам относятся пробел, символ табуляции, возврат каретки, символ новой строки и символ перевода страницы. То же самое, что и [ \t,\r,\n,\f] |
| \S | ищет класс не пробельных символов. То же самое, что и [^ \t,\r,\n,\f] |
| ^\s*$ | ищет пустые строки содержащие пробел 2 |
| ^[ ]*$ | ищет пустые строки содержащие пробел 2 |
| ^Тест | ищет слово Тест в начале строки |
| Тест$ | ищет слово Тест в конце строки |
| \bтом | ищет набор символов том только в начале слов, то есть в слове Томск будет найдено, а в слове Потом нет |
| том\b | ищет набор символов том только в конце слов, то есть в слове |
| \Bтом\B | ищет набор символов том не в начале и не в конце слов, то есть в слове Томск не будет найдено, и слово Потом также будет проигнорировано, а вот в словах Автоматизация, Хрестоматия будет найдено |
| Маша|Оля | ищет все заданные слова в тексте. Например, нужно найти определенные имена в тесте - Маша и Оля, вечером собирались в кино, но встретив Сашу и Пашу, Маша ушла с Пашей на концерт, а Оля с Сашей решили погулять в парке. Найдет все слова Маша и Оля, то есть четыре совпадения. |
1, 2 Часть примеров уже устарела, notepad++ совершенствуется и часть примеров делается стандартными командами. Например, конструкции вида [а-яА-Я] - искать в любом из регистров потеряли смысл, а явное указание на регистр при снятом чек-боксе будет проигнорировано и будут найдены все вхождения в верхнем и нижнем регистрах.
«Удалить пустые строки содержащие пробел» сейчас выполняется через меню «Правка» – «Операции со строками». Но с их помощью можно разрабатывать свои шаблоны поиска и замены.