Безплатен конвертор

Regex Тестер

Тествайте и отстранявайте грешки в регулярни изрази незабавно във вашия браузър. Маркирайте съвпаденията, преглеждайте групите за улавяне и използвайте режима на замяна — безплатен и личен.

//g
Флагове:

За този инструмент

Регулярните изрази са специфичен за домейн език за съвпадение на шаблони в текст. Те са част от компютрите от 1968 г. и сега са вградени във всеки модерен език за програмиране, текстов редактор и инструмент за търсене в командния ред. Синтаксисът е кратък, но податлив на грешки: малки промени водят до леко различно поведение на съвпадението и сложните изрази бързо стават нечетливи. Тестер, който показва съвпадения в реално време, докато редактирате шаблона, е най-ефективният начин за разработване и проверка на регулярен израз.

Този тестер работи във вашия браузър с помощта на механизма за регулярни изрази на JavaScript (същия, който използва вашето приложение, ако работи в браузър). Образците и тестовият текст се актуализират реактивно: всяка промяна на който и да е от тях подновява съвпадението. Групите за съвпадение са маркирани, заснетите групи са изброени и флаговете (нечувствителни към малки и главни букви, многоредови, глобални) са изложени за тестване.

Синтаксисът на Regex варира леко между двигателите. JavaScript следва спецификацията на ECMAScript; Python, PCRE (използван от PHP и много други), Java и Go всеки има свои собствени диалекти с припокриващи се, но не идентични функции. Разработените тук модели използват синтаксис на ECMAScript; преносимостта на различни машини изисква проверка на документацията на всяка цел.

Защо да използвате Regex тестер

Известно е, че грешките в регулярните изрази са трудни за отстраняване след внедряване. Модел, който изглежда разумен, може да съвпадне повече или по-малко от предвиденото, да се провали в крайни случаи или да има катастрофално обратно проследяване на определени входове. Интерактивното тестване на модели срещу представителен вход улавя проблеми преди преглед на кода и производство.

Моделите също се възползват от документацията. Показването на регулярен израз до входа, който трябва да съвпада, и входа, който не трябва да съвпада, прави намерението изрично. Бъдещите поддържащи (включително вас след шест месеца) оценяват документираните тестови случаи повече, отколкото ценят умните едноредови текстове.

Как да използвате

Въведете шаблон, въведете тестови данни, вижте маркираните съвпадения на живо.

  1. Въведете своя модел: Въведете модела на регулярен израз в полето за шаблон. Както литералният регулярен израз (/pattern/flags), така и формите само за шаблони работят; флагове могат да бъдат зададени чрез въвеждане на флагове.
  2. Добавяне на тестов вход: Поставете примерен текст, на който шаблонът трябва да съвпада (и в идеалния случай също текст, който не трябва да съвпада). Тестерът пуска шаблона срещу входа и подчертава съвпаденията.
  3. Поставете знамена: Често срещани флагове: g (глобално, намиране на всички съвпадения), i (без значение от главни и малки букви), m (многоредово, ^ и $ съвпадение на началото/края на реда), s (dotall, . съвпада с нови редове), u (Unicode).
  4. Проверете резултатите: Всяко съвпадение се маркира във входа. Групите за заснемане се появяват в списък с групов индекс и стойност. Тестерът също така показва броя на съвпаденията и всички грешки при компилиране в шаблона.

Обичайни случаи на употреба

Технически подробности

Регулярният израз на JavaScript следва спецификацията на ECMAScript. Основни функции: символни класове ([abc], [^abc]), квантификатори (*, +, ?, {n,m}), редуване (|), групиране ((...)), прихващащи и неулавяни групи, поглед напред и назад (модерни двигатели), препратки, наименувани групи, екраниране на Unicode свойство (с флаг u) и стандартен набор от последователности за екраниране.

Важни разлики от PCRE и Python: поддръжката на lookbehind е наскоро в JavaScript (2018+); наименуваните групи използват (?<име>...) синтаксис; някои екрани на Unicode изискват флаг u, за да работят правилно. Моделите, предназначени за междуезично използване, трябва да бъдат проверени спрямо документацията на всяка цел.

Ефективност: базираните на обратно проследяване regex машини (повечето включително JavaScript) могат да имат катастрофално обратно проследяване на определени патологични модели. Тестовете, които задържат тестера, са знак, че моделът се нуждае от опростяване - обикновено чрез избягване на вложени квантификатори и двусмислено редуване.

Най-добри практики

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

Кой разновидност на регулярен израз поддържа този инструмент?
Той използва вградената в JavaScript машина RegExp, която поддържа стандартен синтаксис, включително lookaheads, lookbehinds (в съвременните браузъри), наименувани групи за улавяне и екраниране на Unicode свойства.
Мога ли да тествам замествания на регулярни изрази?
да Превключете към режим Замяна, за да въведете шаблон за заместване. Можете да използвате $1, $2 и т.н. за обратни препратки към групи за улавяне и $<име> за групи с имена.
Защо моят регулярен израз съвпада по различен начин тук, отколкото в Python/PHP?
Различните езици за програмиране имат малко по-различни механизми за регулярни изрази. JavaScript не поддържа притежателни квантори или някои специфични за PCRE функции. Основният синтаксис (класове знаци, квантори, групи) е един и същ за всички езици.
Инструментът запазва ли моделите ми на регулярни изрази?
Не. Нищо не се запазва или предава. Инструментът работи изцяло във вашия браузър. Можете да маркирате или споделяте шаблони, като копирате регулярния израз.
Как да съпоставя буквален специален знак?
Избягайте от него с обратна наклонена черта. За съпоставяне на буквална точка: \. За да съпоставите буквална обратна наклонена черта: \\. В класовете символи [...] повечето специални знаци губят своето значение.
Тестерът работи ли на сървър?
Не. Компилирането и съпоставянето на шаблони се извършват във вашия браузър с помощта на родния обект RegExp.
Мога ли да тествам модели за не-JavaScript машини?
Най-вече. За прости модели основните двигатели са съгласни. За разширени функции (поглед назад, атомни групи, притежателни квантификатори, екраниране на свойство Unicode) потвърдете спрямо документацията на целевата машина.
Обработва ли много голям вход?
До няколко мегабайта работи гладко. По-големите въведени данни могат да забавят или да блокират браузъра, особено с модели, склонни към обратно проследяване.