Regex Тестер
Тествайте и отстранявайте грешки в регулярни изрази незабавно във вашия браузър. Маркирайте съвпаденията, преглеждайте групите за улавяне и използвайте режима на замяна — безплатен и личен.
Тествайте и отстранявайте грешки в регулярни изрази незабавно във вашия браузър. Маркирайте съвпаденията, преглеждайте групите за улавяне и използвайте режима на замяна — безплатен и личен.
Регулярните изрази са специфичен за домейн език за съвпадение на шаблони в текст. Те са част от компютрите от 1968 г. и сега са вградени във всеки модерен език за програмиране, текстов редактор и инструмент за търсене в командния ред. Синтаксисът е кратък, но податлив на грешки: малки промени водят до леко различно поведение на съвпадението и сложните изрази бързо стават нечетливи. Тестер, който показва съвпадения в реално време, докато редактирате шаблона, е най-ефективният начин за разработване и проверка на регулярен израз.
Този тестер работи във вашия браузър с помощта на механизма за регулярни изрази на JavaScript (същия, който използва вашето приложение, ако работи в браузър). Образците и тестовият текст се актуализират реактивно: всяка промяна на който и да е от тях подновява съвпадението. Групите за съвпадение са маркирани, заснетите групи са изброени и флаговете (нечувствителни към малки и главни букви, многоредови, глобални) са изложени за тестване.
Синтаксисът на Regex варира леко между двигателите. JavaScript следва спецификацията на ECMAScript; Python, PCRE (използван от PHP и много други), Java и Go всеки има свои собствени диалекти с припокриващи се, но не идентични функции. Разработените тук модели използват синтаксис на ECMAScript; преносимостта на различни машини изисква проверка на документацията на всяка цел.
Известно е, че грешките в регулярните изрази са трудни за отстраняване след внедряване. Модел, който изглежда разумен, може да съвпадне повече или по-малко от предвиденото, да се провали в крайни случаи или да има катастрофално обратно проследяване на определени входове. Интерактивното тестване на модели срещу представителен вход улавя проблеми преди преглед на кода и производство.
Моделите също се възползват от документацията. Показването на регулярен израз до входа, който трябва да съвпада, и входа, който не трябва да съвпада, прави намерението изрично. Бъдещите поддържащи (включително вас след шест месеца) оценяват документираните тестови случаи повече, отколкото ценят умните едноредови текстове.
Въведете шаблон, въведете тестови данни, вижте маркираните съвпадения на живо.
Регулярният израз на JavaScript следва спецификацията на ECMAScript. Основни функции: символни класове ([abc], [^abc]), квантификатори (*, +, ?, {n,m}), редуване (|), групиране ((...)), прихващащи и неулавяни групи, поглед напред и назад (модерни двигатели), препратки, наименувани групи, екраниране на Unicode свойство (с флаг u) и стандартен набор от последователности за екраниране.
Важни разлики от PCRE и Python: поддръжката на lookbehind е наскоро в JavaScript (2018+); наименуваните групи използват (?<име>...) синтаксис; някои екрани на Unicode изискват флаг u, за да работят правилно. Моделите, предназначени за междуезично използване, трябва да бъдат проверени спрямо документацията на всяка цел.
Ефективност: базираните на обратно проследяване regex машини (повечето включително JavaScript) могат да имат катастрофално обратно проследяване на определени патологични модели. Тестовете, които задържат тестера, са знак, че моделът се нуждае от опростяване - обикновено чрез избягване на вложени квантификатори и двусмислено редуване.