Тестер на регекси
Тествайте регулярни изрази спрямо текст и вижте всички съвпадения, които са подчертани. От съществено значение за разработчиците, които работят със съчетаване на шаблони, валидиране на данни или обработка на текст. Отстранявайте грешки и усъвършенствайте своите regex шаблони в реално време с визуална обратна връзка, показваща точно какво съвпада с вашия израз.
Често задавани въпроси
Регулярният израз е последователност от символи, която определя модел за търсене. Regex се използва за намиране, съпоставяне и манипулиране на текст въз основа на шаблони, а не на точни низове. Той е изключително мощен за задачи като валидиране на имейл адреси, извличане на данни от текст, операции за намиране и заместване и анализ на лог файлове.
Въведете своя regex шаблон в полето за шаблон и поставете тестовия текст в областта за текст. Инструментът ще маркира всички съвпадения в реално време, показвайки ви какво точно улавя вашият шаблон. Ако нищо не се подчертае, вашият шаблон не съвпада. Използвайте тази визуална обратна връзка, за да усъвършенствате шаблона си, докато не съвпадне точно с това, което ви е необходимо.
Най-често срещаните знамена са: 'g' (global) намира всички съвпадения, а не само първото, 'i' (case-insensitive) пренебрегва разликите между главни и малки букви, 'm' (multiline) прави така, че ^ и $ да съвпадат с началото/края на реда, а не само с началото/края на низа, а 's' (dotall) прави така, че . да съвпада със знаците за нов ред. Комбинирайте флагове като 'gi' за глобално съвпадение без значение на големи и малки букви.
За имейл: опитайте с /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/ за основно валидиране. За URL адреси: /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/ works for most cases. Имайте предвид, че перфектната валидация на имейл/URL е изключително сложна - тези модели се справят с най-често срещаните случаи.
Точката (.) съвпада с всеки символ. Звездичката (*) означава "нула или повече пъти", а плюсът (+) означава "един или повече пъти". Така че .* съвпада с нула или повече от всеки символ (включително не съвпада с нищо), докато .+ изисква поне един символ, за да съвпадне. Например 'a.*b' съвпада с 'ab' или 'a123b', но 'a.+b' съвпада само с 'a123b'.
По подразбиране квантификаторите като *, + и {n,m} са алчни - те съвпадат колкото е възможно повече. Добавете въпросителен знак (?) след квантификатора, за да го превърнете в нежаден (мързелив) и да съвпада с възможно най-малкото количество. Например в текста "<div>hello</div><div>world</div>", /<div>.*<\/div>/ съвпада с целия низ (алчен), докато /<div>.*?<\/div>/ съвпада с всеки таг поотделно (нелаком).
Групите за улавяне използват скоби () за извличане на конкретни части от съответствието. Например, /user-(\d+)/ улавя цифровия идентификатор на потребителя. Достъпът до уловената стойност може да бъде осъществен на повечето езици с помощта на групи за съвпадение. Използвайте (?:...) за групите, които не са за улавяне, когато се нуждаете от групиране за количествени показатели, но не искате да улавяте стойността.
Поставете примерни записи в дневника в областта за тестови низове и създайте шаблони за извличане на времеви марки, IP адреси, кодове на състоянието или съобщения за грешки. Визуалното подчертаване показва точно какво съвпада, като ви помага да усъвършенствате моделите, преди да ги разположите в инструменти за анализ на логове като Logstash, Splunk или персонализирани скриптове.
Lookaheads (?=...) и lookbehinds (?<=...) утвърждават, че даден шаблон съществува пред или зад, без да го включват в съвпадението. Например, /\d+(?= dollars)/ съвпада с числата, последвани от ' dollars', но улавя само числото. Отрицателните lookhead (?!...) и отрицателните lookbehinds (?<!...) утвърждават, че шаблонът НЕ съществува.
Да! Тествайте regex шаблони за валидиране на формуляри като телефонни номера, пощенски кодове, кредитни карти или персонализирани формати. Визуалната обратна връзка ви помага да се уверите, че вашите шаблони за валидиране правилно приемат валидни входни данни и отхвърлят невалидни, преди да ги внедрите в приложението си.
