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

Использование RegEx в Гугл таблицах
В таблицах Google можно использовать замену при помощи специальной формулы =REGEXREPLACE("текст или ячейка";"регулярное выражение";"фрагмент для замены").
Пример использования: =REGEXREPLACE(A1;"\.ru";"\.сom") - замена домена в зоне ru на com
document.addEventListener('click', function(event) { if (event.target.classList.contains('copy')) { let textToCopy = event.target.textContent; navigator.clipboard.writeText(textToCopy).then(() => { event.target.innerHTML = 'Скопировано!'; setTimeout(() => { event.target.textContent = textToCopy; }, 500); // Можно изменить время через которое вернется исходный текст (в миллисекундах) }).catch((err) => { alert('Ошибка при копировании текста: ' + err); }); } });






