Regex тестер

Тествайте JavaScript регулярни изрази върху примерен текст директно в браузъра си.

Шаблон (Pattern)
Флагове
Текст за тестване
Маркирани съвпадения
Въведете шаблон, за да го тествате.

Вашият шаблон и текст се тестват директно в браузъра Ви. Нищо не се качва в BroBroGo.

ЧЗВ

Безопасно ли е да поставя текста си тук?

Да. Търсенето на съвпадения се извършва изцяло във Вашия браузър — нищо не се изпраща до BroBroGo.

Какво означават флаговете g/i/m/s?

g намира всички съвпадения вместо само първото. i игнорира регистъра на буквите (главни/малки). m кара знаците ^ и $ да съвпадат с началото и края на всеки ред, а не само на целия низ. s позволява на точката (.) да съвпада и със знаци за нов ред.

Защо се появява съобщение, че моят шаблон отнема твърде много време?

Някои шаблони предизвикват т.нар. „катастрофално връщане назад“ (catastrophic backtracking) — енджинът опитва експоненциален брой комбинации, преди да се откаже, което може да замрази раздела на браузъра. Този инструмент прекратява търсенето след 2 секунди, ако това се случи, така че самата страница никога не блокира. Опитайте се да опростите вложените повторения като (a+)+.

Работа с JavaScript регулярни изрази в браузъра

Регулярните изрази (regular expressions или regex) са специализирани текстови шаблони, които служат за търсене, валидиране и извличане на поднизове в рамките на даден текст. Този инструмент позволява тестването на JavaScript регулярни изрази върху примерен текст директно в уеб браузъра. Чрез него можете да проверите дали даден регулярен израз идентифицира правилно специфични шаблони в текста, да разберете как различните флагове променят поведението на търсене и да извлечете конкретни части от низ с помощта на улавящи групи.

При въвеждане на шаблон и текст за тестване, инструментът маркира всяко съвпадение и уловена група мигновено. Обработката се извършва локално: Вашият шаблон и текст се тестват директно в браузъра Ви и нищо не се качва в BroBroGo.

Входни параметри и конфигурация на шаблона

За да извършите тест, инструментът изисква конфигурирането на три основни елемента:

  • Шаблон (Pattern): Регулярният израз, който искате да тествате. Примерният шаблон по подразбиране е \d+.
  • Флагове: Параметри, които променят начина, по който се изпълнява търсенето на съвпадения:
    • g (Global): Намира всички съвпадения в текста вместо само първото.
    • i (Case insensitive): Игнорира регистъра на буквите (главни и малки букви се третират като еднакви).
    • m (Multiline): Променя поведението на знаците за начало ^ и край $, като ги кара да съвпадат с началото и края на всеки отделен ред, а не само с началото и края на целия текст.
    • s (Dot matches newline): Позволява на метасимвола точка . да съвпада и със знаци за нов ред.
  • Текст за тестване: Текстът, върху който се прилага регулярният израз. Примерният текст по подразбиране е "Поставете или въведете текст, за да тествате Вашия шаблон".

Анализ на изходните резултати и уловените групи

След прилагане на регулярния израз, инструментът генерира няколко визуализации и метрики:

  • Маркирани съвпадения: Текстът за тестване се показва с цветно маркиране върху откритите съвпадения.
  • Съвпадения: Списък с всички намерени резултати. Когато в шаблона са дефинирани улавящи скоби, всяко съвпадение в списъка показва и съответната уловена група под етикета Група {n} (където {n} е номерът на групата).
  • Съвпадения: {count}: Общият брой на откритите съвпадения в текста.
  • Знаци: Броят на символите в тествания текст.

Правила за обработка и ограничения при търсене

При работа с инструмента се прилагат следните правила, лимити и съобщения за грешки:

  • Ако регулярният израз не открие съвпадения в текста, се изписва съобщението Няма съвпадения..
  • При синтактична грешка в регулярния израз се визуализира съобщението Невалиден регулярен израз..
  • Ако флага за глобално търсене (g) не е избран, инструментът връща единствено първото съвпадение.
  • Когато флагът g е активиран, се прилагат лимити за производителност: инструментът връща максимум 1 000 съвпадения и показва най-много 100 карти със съвпадения в интерфейса. При надхвърляне на лимита се показва бележката Показване на първите {max}..
  • Потребителят може да нулира формата чрез бутона Изчистване, което извежда съобщението Изчистено..

Оптимизация на производителността и предотвратяване на блокиране

Един от основними проблеми при писането на регулярни изрази е рискът от т.нар. „катастрофално връщане назад“ (catastrophic backtracking). Това състояние възниква, когато шаблонът съдържа вложени повторения (например шаблони от типа (a+)+), които при липса на съвпадение карат енджина да изпробва експоненциален брой комбинации. Това може да доведе до претоварване на процесора и замразяване на браузъра.

За да се предотврати блокиране на интерфейса, инструментът има вграден защитен таймер. Ако обработката на даден шаблон отнеме повече от 2 секунди, процесът се прекратява автоматично и се извежда предупреждението: Този шаблон отнема твърде много време за изпълнение — възможно е да е критично бавен. Опитайте се да го опростите.. За да избегнете това състояние, избягвайте припокриващи се вложени квантификатори и правете шаблоните си възможно най-специфични.

Често задавани въпроси (FAQ)

Безопасно ли е да поставя текста си тук?
Да. Търсенето на съвпадения се извършва изцяло във Вашия браузър — нищо не се изпраща до BroBroGo.

Какво означават флаговете g/i/m/s?
g намира всички съвпадения вместо само първото. i игнорира регистъра на буквите (главни/малки). m кара знаците ^ и $ да съвпадат с началото и края на всеки ред, а не само на целия низ. s позволява на точката (.) да съвпада и със знаци за нов ред.

Защо се появява съобщение, че моят шаблон отнема твърде много време?
Някои шаблони предизвикват т.нар. „катастрофално връщане назад“ (catastrophic backtracking) — енджинът опитва експоненциален брой комбинации, преди да се откаже, което може да замрази раздела на браузъра. Този инструмент прекратява търсенето след 2 секунди, ако това се случи, така че самата страница никога не блокира. Опитайте се да опростите вложените повторения като (a+)+.