Регулярні вирази в пошуку і заміні: простий посібник із сімома рецептами
Регулярний вираз, або regex, це шаблон, записаний кількома символами. В інструменті «Пошук і заміна» увімкніть «Регулярні вирази», і поле «Знайти» читатиме шаблон, а не звичайний текст. Тоді крапка означатиме будь-який символ, а не саму крапку. Більшість корисних шаблонів потребують лише кількох символів. Для звичайних слів вимикайте «Регулярні вирази», бо тоді кожен символ сприймається буквально.
Пошук і замінаЗамінити слово в усьому текстіБезкоштовноСимволи, які вам знадобляться
| Символ | Збігається з |
|---|---|
| . | будь-яким одним символом, крім розриву рядка |
| * | попереднім елементом нуль або більше разів |
| + | попереднім елементом один або більше разів |
| ? | попереднім елементом один раз або взагалі не збігається |
| [ ] | одним символом зі списку, наприклад [aeiou] або [0-9] |
| \d \w \s | цифрою; літерою, цифрою або підкресленням; пробілом, табуляцією або розривом рядка |
| ( ) | групою, яку «Замінити» може повторно використати як $1, $2 тощо |
| ^ і $ | початком і кінцем усього тексту |
Великі літери інвертують клас: \D це будь-який не-цифровий символ, а \S це будь-який не-пробільний.
Дві примітки щодо цього інструмента. По-перше, \w збігається лише з англійськими літерами, цифрами і підкресленням. Для літер з діакритикою використовуйте \p{L}, що збігається з літерою будь-якого алфавіту. По-друге, ^ і $ збігаються з початком і кінцем усього тексту, а не кожного рядка. У рецептах нижче замість цього всередині шаблону використовується розрив рядка.
Групи і $1
Візьміть частину шаблону в круглі дужки, і інструмент запам'ятає, що саме вона збіглася. У полі «Замінити» $1 це перша група, $2 друга, а $& увесь збіг. У FAQ самого інструмента є класичний приклад: якщо в полі «Знайти» стоїть (\w+)@(\w+), а в полі «Замінити» $2 at $1, то текст name@site стає site at name. Групи працюють лише з увімкненими «Регулярними виразами». Коли вони вимкнені, $1 вводиться як звичайний текст.
Побудуйте шаблон поступово
Почніть із точного тексту, який хочете знайти, і замініть змінні частини символами. Дату на кшталт 2026-11-04 можна записати як \d{4}-\d{2}-\d{2}, де {4} означає рівно чотири збіги попереднього елемента. Спершу перевірте просту версію і звужуйте її, лише якщо підсвічування показує, що вона захоплює забагато.
Якщо хочете побачити, що шаблон робить сам по собі, без змін у тексті, Тестер регулярних виразів запускає його на зразку тексту і показує кожен збіг.
Сім рецептів
Увімкніть «Регулярні вирази» для кожного рецепта. Інструмент підсвічує збіги і показує їх кількість до копіювання, тож спершу перевіряйте кожен рецепт на копії свого тексту.
- Поміняти місцями ім'я та прізвище. Знайти
(\w+) (\w+), замінити$2, $1. «Ada Lovelace» стане «Lovelace, Ada». Для імен із діакритикою використовуйте(\p{L}+) (\p{L}+). Це працює лише для імен із двох слів. - Видалити кінцеві пробіли. Знайти
[ \t]+(?=\r?\n|$), поле «Замінити» залишити порожнім. Шаблон збігається з пробілами або табуляціями, що стоять безпосередньо перед розривом рядка або кінцем тексту. Випередження(?=...)перевіряє розрив, не видаляючи його, а\r?охоплює кінці рядків Windows. Виправлення вставленого тексту має опцію «Обрізати кожен рядок», яка робить те саме. - Згорнути подвійні пробіли. Знайти
{2,}, тобто пробіл, повторений два або більше разів, і замінити одним пробілом. Два або більше пробілів стануть одним. Це також скорочує відступи, тож для коду цей рецепт пропускайте. - Додати префікс до кожного рядка. Знайти
(.+), замінити- $1. Кожен фрагмент із одного або більше символів між розривами рядків це рядок, а $1 містить його вміст. Порожні рядки пропускаються. Використовуйте форму з одним або більше,.+, а не з нулем або більше. Форма з нулем збігається також із порожніми місцями між розривами рядків, тож до порожніх рядків додасться зайве тире. - Видалити порожні рядки. Знайти
\n\s*(?=\n), поле «Замінити» залишити порожнім. Збіг це розрив рядка і будь-які пробіли після нього до наступного розриву, а сам наступний розрив зберігається. Так видаляються порожні рядки, зокрема ті, що містять лише пробіли. Оскільки\sтакож збігається з поверненням каретки, працюють і кінці рядків Windows. Порожній рядок на самому початку тексту залишається. Опція «Прибрати порожні рядки» в інструменті Видалити дублікати рядків робить це одним клацанням. - Один елемент на рядок. Знайти
,[ ]*, замінити\nі увімкнути «Читати \n і \t» у полі «Замінити». «apples, pears, plums» стане трьома рядками. Без цієї позначки \n залишиться двома символами: зворотною скісною рискою і літерою n. - Обгорнути кожне число у квадратні дужки. Знайти
\d+, замінити[$&]. «Order 42 and 7» стане «Order [42] and [7]». $& це весь збіг, тож група не потрібна.
Перевірте перед копіюванням
- Кількість збігів і підсвічування показують, що саме захопив шаблон. Якщо підсвічування неправильне, неправильним буде і результат.
- Шаблон із помилкою показує «Недійсний шаблон» під полями. Виправте шаблон, і результат оновиться.
- Залиште поле «Замінити» порожнім, щоб видалити всі збіги. Підказка в полі про це і говорить.
- За замовчуванням «Враховувати регістр» вимкнено, тож рецепти збігаються і з великими, і з малими літерами. Увімкніть його, коли регістр важливий.
- Щоб знайти буквальну крапку або дужку з увімкненими «Регулярними виразами», поставте перед нею обернену риску: \. або \[.
Крайні випадки
- Жадібні збіги.
.+бере якомога більше. Щоб зупинитися на першому збігу, додайте знак питання:.+?. Це важливо для тексту на кшталт<b>.+</b>, який може захопити кілька тегів. - Цілі слова. Для звичайного слова безпечніше вимкнути «Регулярні вирази». Опція «Лише цілі слова» не дає cat збігатися всередині category, як пояснює FAQ інструмента. У посібнику з пошуку і заміни є більше прикладів змін цілих слів.
- Збережіть оригінал. Результат з'являється у власному полі, а вхідний текст лишається без змін. Скопіюйте результат, коли будете задоволені.
Переклад з Англійський оригінал за допомогою ШІ.
Коментарі
Коментарів поки немає. Будьте першим.


