Тестуйте регулярні вирази з підсвічуванням збігів у реальному часі, перевіркою шаблонів та поясненнями поширених символів 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: Виберіть відповідні прапорці для вашого шаблону:
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" |
Коли ви освоїте основи, ви зможете створювати більш складні шаблони для вирішення складних завдань обробки тексту:
1^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
2
Цей шаблон перевіряє адреси електронної пошти, забезпечуючи, щоб вони відповідали стандартному формату: ім'я_користувача@домен.tld.
1^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
2
Цей шаблон перевіряє URL, включаючи ті, що мають або не мають протокол http/https.
1^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$
2
Цей шаблон відповідає номерам телефонів США в різних форматах: (123) 456-7890, 123-456-7890 або 1234567890.
1^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
2
Цей шаблон перевіряє дати у форматі YYYY-MM-DD, з базовою валідацією для діапазонів місяців і днів.
Перегляди і передбачення дозволяють вам відповідати шаблонам лише в тому випадку, якщо вони слідують за іншим шаблоном або передують йому:
a(?=b)
відповідає "a" лише в тому випадку, якщо за ним слідує "b"a(?!b)
відповідає "a" лише в тому випадку, якщо за ним не слідує "b"(?<=a)b
відповідає "b" лише в тому випадку, якщо перед ним стоїть "a"(?<!a)b
відповідає "b" лише в тому випадку, якщо перед ним не стоїть "a"Наш тестер regex підтримує різні прапорці, які змінюють спосіб відповідності шаблонам:
^
і $
відповідали початку/кінцю кожного рядкаРегулярні вирази мають численні практичні застосування в різних сферах:
Валідація форм: Переконайтеся, що введення користувача відповідає необхідним форматам:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
Парсинг HTML: Витягти конкретні елементи або атрибути:
<img[^>]+src="([^">]+)"
<a[^>]+href="([^">]+)"
Аналіз файлів журналів: Витягти інформацію з записів журналів:
\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: .*
Парсинг CSV: Обробка значень, розділених комами, з потенційними полями в лапках:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
Знайти та замінити: Визначити шаблони для заміни:
<[^>]*>
(\d{3})(\d{3})(\d{4})
→ ($1) $2-$3
Витягування вмісту: Витягти конкретну інформацію з неструктурованого тексту:
\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
\$\d+(?:\.\d{2})?
Синтаксичне підсвічування: Визначити конструкції мови:
\b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
function\s+([a-zA-Z_$][\w$]*)\s*\(
Рефакторинг коду: Знайти шаблони, які потрібно оновити:
\.oldMethod\(
eval\(
Наш тестер шаблонів regex включає систему управління шаблонами, яка дозволяє вам зберігати та повторно використовувати ваші часто використовувані вирази:
Розгляньте можливість збереження шаблонів, які:
При збереженні шаблонів використовуйте описові ярлики, які:
Організуйте свої збережені шаблони за:
Хоча наш інструмент безпосередньо не підтримує обмін шаблонами між користувачами, ви можете:
Навіть досвідчені розробники стикаються з труднощами при роботі з регулярними виразами. Ось рішення для поширених проблем:
Якщо ваш шаблон показує помилку валідації:
Якщо ваш regex повільний або викликає затримки в браузері:
(a+)+
)Якщо ваш шаблон відповідає небажаному тексту:
^
і $
), щоб відповідати цілим рядкам\b
) там, де це доречноЯкщо ваш шаблон не відповідає очікуваному тексту:
i
)Хоча regex є потужним, він не завжди є найкращим рішенням для кожного завдання обробки тексту:
Для простих текстових операцій рідні методи рядків часто є більш зрозумілими та ефективними:
String.indexOf()
для пошуку підрядківString.startsWith()
і String.endsWith()
для перевірки меж рядкаString.split()
для базової токенізаціїДля структурованих форматів даних спеціалізовані парсери є більш надійними:
Для розуміння значення тексту, а не лише шаблонів:
Розгляньте альтернативи для regex, коли:
Регулярний вираз (regex) — це послідовність символів, яка визначає шаблон пошуку. Ці шаблони можна використовувати для пошуку рядків, відповідності та операцій маніпуляції текстом.
Тестер шаблонів regex допомагає вам розробляти та налагоджувати регулярні вирази, надаючи миттєвий візуальний зворотний зв'язок щодо збігів, перевіряючи синтаксис шаблону та дозволяючи експериментувати з різними шаблонами та прапорцями без необхідності реалізації їх у коді.
Щоб відповідати літеральним спеціальним символам, які зазвичай мають спеціальне значення в regex, вам потрібно екранувати їх зворотною косою рискою. Наприклад, щоб відповідати літеральній крапці, використовуйте \.
замість просто .
.
.*
і .*?
у шаблоні regex?.*
є жадібним квантифікатором, який відповідає якомога більшій кількості символів, тоді як .*?
є ледачим (недобірним) квантифікатором, який відповідає якомога меншій кількості символів. Це розрізнення важливе, коли ви хочете знайти найкоротше відповідність, а не найдовше.
Хоча основний синтаксис regex подібний у багатьох мовах, є незначні відмінності в реалізації. Наш тестер використовує regex-двигун JavaScript, який сумісний з багатьма веб-мовами, але може мати відмінності від regex у мовах, таких як Python, Java або Perl.
Щоб перевірити, що весь рядок відповідає шаблону, використовуйте якорі ^
на початку та $
в кінці вашого regex. Наприклад, ^[0-9]+$
відповідатиме лише рядкам, які повністю складаються з цифр.
Захоплюючі групи, створені дужками ()
, дозволяють вам витягувати конкретні частини знайденого тексту. У нашому тестері ви можете бачити всі збіги, включаючи захоплені групи. У мовах програмування ви зазвичай можете отримати доступ до цих захоплень, індексуючи результат збігу.
Для покращення ефективності regex: будьте специфічними з класами символів, уникайте непотрібних захоплюючих груп (використовуйте не захоплюючі групи (?:...)
, коли це можливо), обмежте використання переглядів/переглядів ззаду, і уникайте катастрофічних зворотних шаблонів, таких як вкладені квантифікатори.
Поширені помилки включають: неекранування спеціальних символів, створення шаблонів, які занадто жадібні, забування про якорі (з ^
і $
), і написання надто складних виразів, які важко підтримувати.
Регулярні вирази не дуже підходять для парсингу вкладених структур, таких як HTML або XML. Хоча ви можете створити шаблони regex для простого збігу HTML, зазвичай краще використовувати спеціалізований парсер HTML для складної обробки HTML.
Спробуйте наш тестер шаблонів regex сьогодні, щоб спростити свої завдання з обробки тексту, перевірити формати введення та витягти значущі дані з неструктурованого тексту. Незалежно від того, чи ви початківець, який вивчає основи регулярних виразів, чи досвідчений розробник, який працює над складним збігом шаблонів, наш інструмент надає функції, які вам потрібні для ефективного створення, тестування та вдосконалення ваших шаблонів regex.
Відкрийте більше інструментів, які можуть бути корисними для вашого робочого процесу