Тестер шаблонів Regex
Результати збігів
Введіть шаблон та текст для тестування, щоб побачити результати
Зберегти шаблон
Результати збігів
Введіть шаблон та текст для тестування, щоб побачити результати
Збережені шаблони
Ще немає збережених шаблонів
Посібник по символам Regex
.
Збігається з будь-яким символом, крім нового рядка\d
Збігається з будь-якою цифрою (0-9)\D
Збігається з будь-якою нецифрою\w
Збігається з будь-яким символом слова (a-z, A-Z, 0-9, _)\W
Збігається з будь-яким несловесним символом\s
Збігається з будь-яким символом пробілу\S
Збігається з будь-яким непробільним символом^
Збігається з початком рядка$
Збігається з кінцем рядка*
Збігається з 0 або більше попереднього символу+
Збігається з 1 або більше попереднього символу?
Збігається з 0 або 1 попереднього символу{n}
Збігається з точно n попереднього символу{n,}
Збігається з принаймні n попереднього символу{n,m}
Збігається з між n і m попереднього символу[abc]
Збігається з будь-яким з символів у дужках[^abc]
Збігається з будь-яким символом, що не входить у дужки(abc)
Групує кілька токенів разом і захоплює збігa|b
Збігається або з a, або з b\b
Збігається з позицією межі словаТестер і валідатор шаблонів регулярних виразів
Вступ
Тестер шаблонів регулярних виразів (regex) — це важливий інструмент для розробників, аналітиків даних та всіх, хто працює з обробкою тексту. Цей всебічний валідатор шаблонів regex дозволяє вам створювати, тестувати та вдосконалювати регулярні вирази в реальному часі, надаючи миттєвий візуальний зворотний зв'язок щодо збігів шаблонів. Незалежно від того, чи ви перевіряєте адреси електронної пошти, парсите журнали або витягуєте конкретні дані з тексту, наш тестер regex робить процес розробки та налагодження швидшим і інтуїтивнішим.
Регулярні вирази — це потужні послідовності шаблонів, які дозволяють виконувати складний пошук, валідацію та маніпуляцію текстом. Однак їх синтаксис може бути складним і важким для освоєння. Цей тестер шаблонів regex спрощує процес, підсвічуючи збіги під час введення, перевіряючи синтаксис шаблону та дозволяючи зберігати часто використовувані шаблони для подальшого використання.
Як користуватися тестером шаблонів regex
Використання нашого валідатора шаблонів regex є простим і інтуїтивно зрозумілим. Дотримуйтесь цих кроків, щоб почати:
-
Введіть шаблон регулярного виразу: Введіть свій шаблон regex у відведеному полі введення. Інструмент перевіряє ваш шаблон у реальному часі, сповіщаючи вас про будь-які синтаксичні помилки.
-
Виберіть прапорці regex: Виберіть відповідні прапорці для вашого шаблону:
g
(Глобальний): Знайти всі збіги, а не зупинятися після першого збігуi
(Нечутливий до регістру): Зробити шаблон нечутливим до регіструm
(Багаторівневий): Зробити так, щоб^
і$
відповідали початку/кінцю кожного рядка- Різні комбінації цих прапорців доступні у випадаючому меню
-
Введіть тестовий текст: Введіть текст, який ви хочете перевірити на відповідність вашому шаблону, у зоні тестового тексту.
-
Перегляньте результати в реальному часі: Під час введення інструмент автоматично:
- Підсвічує всі збіги шаблону в тестовому тексті
- Відображає загальну кількість знайдених збігів
- Вказує, чи відповідає шаблон всьому тексту
-
Зберігайте корисні шаблони: Для шаблонів, які ви використовуєте часто:
- Введіть описовий ярлик для свого шаблону
- Натисніть кнопку "Зберегти"
- Доступ до збережених шаблонів з розділу "Збережені шаблони"
-
Копіюйте результати: Використовуйте кнопку "Копіювати збіги", щоб скопіювати весь знайдений текст у ваш буфер обміну для використання в інших програмах.
Інтерфейс розділений на дві основні панелі: панель введення, де ви вводите свій шаблон і тестовий текст, та панель результатів, яка відображає збіги та інформацію про шаблон.
Основи регулярних виразів
Регулярні вирази використовують спеціальні символи та послідовності для визначення шаблонів пошуку. Ось посібник по основним символам regex, підтримуваним нашим інструментом:
Відповідність символам
Символ | Опис | Приклад | Відповідає |
---|---|---|---|
. | Відповідає будь-якому символу, крім нового рядка | a.c | "abc", "adc", "a1c" тощо |
\d | Відповідає будь-якій цифрі (0-9) | \d{3} | "123", "456", "789" тощо |
\D | Відповідає будь-якому нецифровому символу | \D+ | "abc", "xyz" тощо |
\w | Відповідає будь-якому символу слова (a-z, A-Z, 0-9, _) | \w+ | "abc123", "test_123" тощо |
\W | Відповідає будь-якому несловесному символу | \W+ | "!@#", " + " тощо |
\s | Відповідає будь-якому символу пробілу | a\sb | "a b", "a\tb" тощо |
\S | Відповідає будь-якому не пробільному символу | \S+ | "abc", "123" тощо |
Якорі позицій
Символ | Опис | Приклад | Відповідає |
---|---|---|---|
^ | Відповідає початку рядка | ^abc | "abc" на початку рядка |
$ | Відповідає кінцю рядка | abc$ | "abc" в кінці рядка |
\b | Відповідає границі слова | \bword\b | "word" як повне слово |
Квантифікатори
Символ | Опис | Приклад | Відповідає |
---|---|---|---|
* | Відповідає 0 або більше попереднього символу | a*b | "b", "ab", "aab" тощо |
+ | Відповідає 1 або більше попереднього символу | a+b | "ab", "aab", "aaab" тощо |
? | Відповідає 0 або 1 попереднього символу | colou?r | "color", "colour" |
{n} | Відповідає точно n попереднього символу | a{3} | "aaa" |
{n,} | Відповідає принаймні n попереднього символу | a{2,} | "aa", "aaa", "aaaa" тощо |
{n,m} | Відповідає від n до m попереднього символу | a{2,4} | "aa", "aaa", "aaaa" |
Символьні класи
Символ | Опис | Приклад | Відповідає |
---|---|---|---|
[abc] | Відповідає будь-якому з символів у дужках | [aeiou] | "a", "e", "i", "o", "u" |
[^abc] | Відповідає будь-якому символу, що не входить до дужок | [^aeiou] | Будь-який символ, крім "a", "e", "i", "o", "u" |
[a-z] | Відповідає будь-якому символу в діапазоні | [a-z] | Будь-яка мала літера |
Групування та альтернативи
Символ | Опис | Приклад | Відповідає |
---|---|---|---|
(abc) | Групує кілька токенів разом і захоплює збіг | (abc)+ | "abc", "abcabc" тощо |
a|b | Відповідає або a, або b | cat|dog | "cat", "dog" |
Складні шаблони регулярних виразів
Коли ви освоїте основи, ви зможете створювати більш складні шаблони для вирішення складних завдань обробки тексту:
Валідація електронної пошти
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
Цей шаблон перевіряє адреси електронної пошти, забезпечуючи, щоб вони відповідали стандартному формату: ім'я_користувача@домен.tld.
Валідація URL
^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
Цей шаблон перевіряє URL, включаючи ті, що мають або не мають протокол http/https.
Валідація номерів телефонів (формат США)
^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$
Цей шаблон відповідає номерам телефонів США в різних форматах: (123) 456-7890, 123-456-7890 або 1234567890.
Валідація дат (YYYY-MM-DD)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
Цей шаблон перевіряє дати у форматі YYYY-MM-DD, з базовою валідацією для діапазонів місяців і днів.
Перегляд і передбачення
Перегляди і передбачення дозволяють вам відповідати шаблонам лише в тому випадку, якщо вони слідують за іншим шаблоном або передують йому:
- Позитивний перегляд:
a(?=b)
відповідає "a" лише в тому випадку, якщо за ним слідує "b" - Негативний перегляд:
a(?!b)
відповідає "a" лише в тому випадку, якщо за ним не слідує "b" - Позитивний перегляд ззаду:
(?<=a)b
відповідає "b" лише в тому випадку, якщо перед ним стоїть "a" - Негативний перегляд ззаду:
(?<!a)b
відповідає "b" лише в тому випадку, якщо перед ним не стоїть "a"
Робота з прапорцями regex
Наш тестер regex підтримує різні прапорці, які змінюють спосіб відповідності шаблонам:
- g (Глобальний): Знайти всі збіги, а не зупинятися після першого збігу
- i (Нечутливий до регістру): Зробити шаблон нечутливим до регістру
- m (Багаторівневий): Зробити так, щоб
^
і$
відповідали початку/кінцю кожного рядка - Комбінації: Ви можете комбінувати прапорці для більш складних вимог до відповідності
Сценарії використання для тестування шаблонів regex
Регулярні вирази мають численні практичні застосування в різних сферах:
Веб-розробка
-
Валідація форм: Переконайтеся, що введення користувача відповідає необхідним форматам:
- Адреси електронної пошти:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
- Паролі (з вимогами до складності):
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
- URL:
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
- Адреси електронної пошти:
-
Парсинг HTML: Витягти конкретні елементи або атрибути:
- Знайти всі теги зображень:
<img[^>]+src="([^">]+)"
- Витягти посилання:
<a[^>]+href="([^">]+)"
- Знайти всі теги зображень:
Обробка даних
-
Аналіз файлів журналів: Витягти інформацію з записів журналів:
- IP-адреси:
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
- Часові мітки:
\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
- Повідомлення про помилки:
ERROR: .*
- IP-адреси:
-
Парсинг CSV: Обробка значень, розділених комами, з потенційними полями в лапках:
- Збіг полів CSV:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
- Збіг полів CSV:
Обробка тексту
-
Знайти та замінити: Визначити шаблони для заміни:
- Видалити HTML-теги:
<[^>]*>
- Форматувати номери телефонів:
(\d{3})(\d{3})(\d{4})
→($1) $2-$3
- Видалити HTML-теги:
-
Витягування вмісту: Витягти конкретну інформацію з неструктурованого тексту:
- Витягти дати:
\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
- Знайти грошові значення:
\$\d+(?:\.\d{2})?
- Витягти дати:
Програмування та кодування
-
Синтаксичне підсвічування: Визначити конструкції мови:
- Змінні JavaScript:
\b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
- Визначення функцій:
function\s+([a-zA-Z_$][\w$]*)\s*\(
- Змінні JavaScript:
-
Рефакторинг коду: Знайти шаблони, які потрібно оновити:
- Застарілі виклики API:
\.oldMethod\(
- Небезпечні функції:
eval\(
- Застарілі виклики API:
Збереження та управління шаблонами
Наш тестер шаблонів regex включає систему управління шаблонами, яка дозволяє вам зберігати та повторно використовувати ваші часто використовувані вирази:
Коли зберігати шаблони
Розгляньте можливість збереження шаблонів, які:
- Ви використовуєте часто в різних проектах
- Є складними та важкими для запам'ятовування
- Служать специфічним цілям валідації у вашій роботі
- Ви вдосконалили після кількох ітерацій
Найкращі практики для ярликів шаблонів
При збереженні шаблонів використовуйте описові ярлики, які:
- Вказують на мету шаблону (наприклад, "Валідатор електронної пошти")
- Зазначають специфічні формати (наприклад, "Номер телефону США")
- Включають інформацію про версію, якщо ви ітеруєте по шаблонах (наприклад, "Валідатор URL v2")
- Є лаконічними, але інформативними
Організація шаблонів
Організуйте свої збережені шаблони за:
- Функцією (валідація, витяг, заміна)
- Сферою (веб-розробка, обробка даних)
- Складністю (базова, розширена)
- Частотою використання
Обмін шаблонами
Хоча наш інструмент безпосередньо не підтримує обмін шаблонами між користувачами, ви можете:
- Копіювати шаблони для обміну з колегами
- Документувати свої шаблони у спільному репозиторії
- Включати описи шаблонів у документацію проекту
Устранення поширених проблем з regex
Навіть досвідчені розробники стикаються з труднощами при роботі з регулярними виразами. Ось рішення для поширених проблем:
Синтаксичні помилки
Якщо ваш шаблон показує помилку валідації:
- Перевірте на наявність непарних дужок, квадратних дужок або фігурних дужок
- Переконайтеся, що спеціальні символи правильно екрановані зворотною косою рискою
- Перевірте, чи є у квантифікаторів попередній символ або група
- Шукайте недійсну синтаксис класу символів
Проблеми з продуктивністю
Якщо ваш regex повільний або викликає затримки в браузері:
- Уникайте надмірного використання вкладених квантифікаторів (наприклад,
(a+)+
) - Будьте обережні з переглядами та переглядами ззаду у великих текстах
- Розгляньте можливість використання більш специфічних шаблонів замість загальних
- Розбивайте складні шаблони на менші, більш керовані частини
Несподівані збіги
Якщо ваш шаблон відповідає небажаному тексту:
- Використовуйте якорі (
^
і$
), щоб відповідати цілим рядкам - Зробіть класи символів більш специфічними
- Додайте границі слів (
\b
) там, де це доречно - Використовуйте негативні перегляди, щоб виключити певні шаблони
Не знайдено збігів
Якщо ваш шаблон не відповідає очікуваному тексту:
- Перевірте проблеми з чутливістю до регістру (розгляньте можливість використання прапора
i
) - Переконайтеся, що спеціальні символи правильно екрановані
- Спочатку протестуйте свій шаблон на спрощених прикладах
- Переконайтеся, що ви використовуєте правильні класи символів
Альтернативи регулярним виразам
Хоча regex є потужним, він не завжди є найкращим рішенням для кожного завдання обробки тексту:
Методи рядків
Для простих текстових операцій рідні методи рядків часто є більш зрозумілими та ефективними:
String.indexOf()
для пошуку підрядківString.startsWith()
іString.endsWith()
для перевірки меж рядкаString.split()
для базової токенізації
Спеціалізовані парсери
Для структурованих форматів даних спеціалізовані парсери є більш надійними:
- JSON-парсери для JSON-даних
- XML/HTML-парсери для розміткових мов
- CSV-парсери для табличних даних
Обробка природної мови (NLP)
Для розуміння значення тексту, а не лише шаблонів:
- Інструменти аналізу настроїв
- Визначення названих сутностей
- Позначення частин мови
Коли вибрати альтернативи
Розгляньте альтернативи для regex, коли:
- Структура тексту є дуже регулярною та простою
- Формат має стандартний парсер
- Вам потрібно зрозуміти семантичне значення
- Продуктивність є критично важливою для дуже великих текстів
Часто задавані питання
Що таке регулярний вираз?
Регулярний вираз (regex) — це послідовність символів, яка визначає шаблон пошуку. Ці шаблони можна використовувати для пошуку рядків, відповідності та операцій маніпуляції текстом.
Чому мені потрібен тестер шаблонів regex?
Тестер шаблонів regex допомагає вам розробляти та налагоджувати регулярні вирази, надаючи миттєвий візуальний зворотний зв'язок щодо збігів, перевіряючи синтаксис шаблону та дозволяючи експериментувати з різними шаблонами та прапорцями без необхідності реалізації їх у коді.
Як я можу відповідати на літеральний спеціальний символ, наприклад, крапку або зірочку?
Щоб відповідати літеральним спеціальним символам, які зазвичай мають спеціальне значення в regex, вам потрібно екранувати їх зворотною косою рискою. Наприклад, щоб відповідати літеральній крапці, використовуйте \.
замість просто .
.
Яка різниця між .*
і .*?
у шаблоні regex?
.*
є жадібним квантифікатором, який відповідає якомога більшій кількості символів, тоді як .*?
є ледачим (недобірним) квантифікатором, який відповідає якомога меншій кількості символів. Це розрізнення важливе, коли ви хочете знайти найкоротше відповідність, а не найдовше.
Чи можу я використовувати цей тестер regex для шаблонів у будь-якій мові програмування?
Хоча основний синтаксис regex подібний у багатьох мовах, є незначні відмінності в реалізації. Наш тестер використовує regex-двигун JavaScript, який сумісний з багатьма веб-мовами, але може мати відмінності від regex у мовах, таких як Python, Java або Perl.
Як я можу перевірити весь рядок за допомогою regex?
Щоб перевірити, що весь рядок відповідає шаблону, використовуйте якорі ^
на початку та $
в кінці вашого regex. Наприклад, ^[0-9]+$
відповідатиме лише рядкам, які повністю складаються з цифр.
Що таке захоплюючі групи і як я можу їх використовувати?
Захоплюючі групи, створені дужками ()
, дозволяють вам витягувати конкретні частини знайденого тексту. У нашому тестері ви можете бачити всі збіги, включаючи захоплені групи. У мовах програмування ви зазвичай можете отримати доступ до цих захоплень, індексуючи результат збігу.
Як я можу зробити свої шаблони regex більш ефективними?
Для покращення ефективності regex: будьте специфічними з класами символів, уникайте непотрібних захоплюючих груп (використовуйте не захоплюючі групи (?:...)
, коли це можливо), обмежте використання переглядів/переглядів ззаду, і уникайте катастрофічних зворотних шаблонів, таких як вкладені квантифікатори.
Які найпоширеніші помилки regex, яких слід уникати?
Поширені помилки включають: неекранування спеціальних символів, створення шаблонів, які занадто жадібні, забування про якорі (з ^
і $
), і написання надто складних виразів, які важко підтримувати.
Чи може regex обробляти вкладені структури, такі як HTML?
Регулярні вирази не дуже підходять для парсингу вкладених структур, таких як HTML або XML. Хоча ви можете створити шаблони regex для простого збігу HTML, зазвичай краще використовувати спеціалізований парсер HTML для складної обробки HTML.
Посилання
- Фрідл, Дж. Е. Ф. (2006). Майстерність регулярних виразів. O'Reilly Media.
- Гойваертс, Дж., & Левітан, С. (2012). Кулінарна книга регулярних виразів. O'Reilly Media.
- "Регулярний вираз." Вікіпедія, Фонд Вікіпедія, https://en.wikipedia.org/wiki/Regular_expression
- MDN Web Docs. "Регулярні вирази." Mozilla, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
- RegExr: Вчіться, створюйте та тестуйте RegEx. https://regexr.com/
Спробуйте наш тестер шаблонів regex сьогодні, щоб спростити свої завдання з обробки тексту, перевірити формати введення та витягти значущі дані з неструктурованого тексту. Незалежно від того, чи ви початківець, який вивчає основи регулярних виразів, чи досвідчений розробник, який працює над складним збігом шаблонів, наш інструмент надає функції, які вам потрібні для ефективного створення, тестування та вдосконалення ваших шаблонів regex.