Перейти до основного вмістуПерейти до калькулятора
108 калькуляторівРезультати наживоПокрокові рішення

Інструмент Rechnerpilot

Тестер Regex

RegExp виконується ізольовано у Web Worker над тестовим текстом; збіги та групи відображаються.

Розробникам

Ізольоване виконання недоступне в цьому середовищі. Regex-Tester потребує підтримки Web Worker у браузері.

Пояснення

Як працює Тестер Regex

Regex-Tester обчислює регулярний вираз (синтаксис JavaScript/ECMAScript) над тестовим текстом і показує збіги, їх позицію, а також захоплені групи. За допомогою прапорців ви керуєте, зокрема, глобальним пошуком (g), регістром (i) та багаторядковою поведінкою (m).

Важливо для безпеки: введений користувачем шаблон може через «катастрофічний backtracking» обчислюватися як завгодно довго. Просте обмеження довжини вводу від цього не захищає. Тому обчислення виконується в окремому Web Worker; якщо він не відповідає протягом короткого часу, його жорстко перериває та відкидає. Головний потік — а отже й інтерфейс — залишається реактивним у будь-який момент.

Межі цього інструмента

  • Лише синтаксис регулярних виразів JavaScript — особливості PCRE/.NET відсутні.
  • Блокуючі шаблони перериваються, а не «виправляються».
  • Максимум 1000 оброблених збігів (наведено перші 100).

Джерела

  • ECMAScript Specification: Синтаксис і семантика RegExp.
  • OWASP: Regular expression Denial of Service (ReDoS).

Практика

Практичні приклади

Груба перевірка email

Шаблон \S+@\S+\.\S+ знаходить прості рядки, схожі на email.

Витягти цифри

З прапорцем g \d+ повертає всі послідовності цифр у тексті.

Використання груп

Круглі дужки захоплюють часткові збіги, які відображаються окремо.

ЧаПи

Поширені запитання

Чому сторінка не зависає?

Обчислення регулярного виразу виконується в окремому Web Worker. Якщо шаблон блокує через катастрофічний backtracking, інтерфейс залишається реактивним; воркер жорстко переривається через короткий час.

Що таке катастрофічний backtracking?

Певні шаблони (наприклад, вкладені квантифікатори як (a+)+) можуть за несприятливих вхідних даних потребувати експоненційно багато кроків. Цей інструмент детерміновано перериває такі запуски замість того, щоб блокуватися.

Чи передаються мої дані?

Ні. Шаблон і тестовий текст обчислюються виключно локально в браузері (у воркері). Жодної передачі не відбувається.

Який синтаксис підтримується?

Синтаксис регулярних виразів JavaScript (ECMAScript). Інші діалекти (PCRE, .NET) можуть відрізнятися.

Чому відображаються не всі збіги?

Для захисту від надзвичайно великих виводів обробляється максимум 1000 збігів; наведено перші 100, а в PDF-експорті — перші 50. При досягненні межі обробки відображається примітка.

Поради

Корисно знати

  • Для всіх збігів увімкніть прапорець g.
  • Уникайте вкладених квантифікаторів як (a+)+ — вони можуть блокувати.
  • Обчислення виконується ізольовано; сторінка не зависає.

Пов'язані калькулятори

Інші інструменти