Бесплатни онлајн Regex Тестер и Валидатор - Тестирајте Обрасце Одмах
Тестирајте и валидирајте регуларне изразе онлајн уз истовремено истицање. Бесплатни тестер regex образаца са валидацијом синтаксе, резултатима поклапања и могућношћу чувања. Тестирајте regex сада!
Тестер Regex Образаца
Резултати поклапања
Унесите образац и текст за тестирање да бисте видели резултате
Сачувај образац
Резултати поклапања
Унесите образац и текст за тестирање да бисте видели резултате
Сачувани обрасци
Још нема сачуваних образаца
Водич кроз Regex Симболе
.Поклапа било који карактер осим новог реда\dПоклапа било коју цифру (0-9)\DПоклапа било који не-цифарски карактер\wПоклапа било који словни карактер (a-z, A-Z, 0-9, _)\WПоклапа било који не-словни карактер\sПоклапа било који празан простор\SПоклапа било који не-празан простор^Поклапа почетак линије$Поклапа крај линије*Поклапа 0 или више претходних карактера+Поклапа 1 или више претходних карактера?Поклапа 0 или 1 претходни карактер{n}Поклапа тачно n претходних карактера{n,}Поклапа најмање n претходних карактера{n,m}Поклапа између n и m претходних карактера[abc]Поклапа било који карактер у угластим заградама[^abc]Поклапа било који карактер који није у угластим заградама(abc)Групише више токена заједно и хвата поклапањеa|bПоклапа или а или б\bПоклапа позицију границе речиDokumentacija
Шта је тестер регуларних израза
Тестер регуларних израза је алат који проверава регуларни израз у односу на део текста и приказује шта се подудара. Регуларни израз, односно регекс, кратак је низ знакова који описује образац у тексту, као што су „три узастопне цифре“ или „било која реч која почиње великим словом“. Овај валидатор регуларних израза омогућава кориснику да унесе образац и пробни текст, а затим одмах види истакнута подударања, без писања кода.
Регуларни изрази се користе у многим програмским језицима за претрагу текста, проверу да ли је кориснички унос у исправном формату и издвајање одређених делова из већег блока текста. Синтакса је сажета, али се лако погреши, па тестирање обрасца пре употребе у програму помаже да се грешке рано открију.
Како тестирати регуларни израз онлајн
- Унесите образац. Унесите регуларни израз у поље за образац. Алат проверава синтаксу док корисник куца и приказује поруку о грешци ако образац није исправан, на пример ако је угласта или округла заграда остала отворена.
- Изаберите заставице. Заставице мењају начин примене обрасца (погледајте у наставку).
- Унесите пробни текст. Унесите или налепите текст за претрагу у поље за пробни текст.
- Прочитајте резултате. Подударања су истакнута у тексту, а алат приказује њихов број. Ако постоји пробни текст, приказује и да ли се образац подудара са целим текстом од почетка до краја или само са његовим делом.
- Сачувајте образац. Образац се може сачувати под кратком ознаком да би се касније поново користио. Сачувани обрасци се чувају у прегледачу, а не на серверу, па се појављују само на истом уређају и у истом прегледачу.
- Копирајте резултате. Подударајући текст или сам образац могу се једним кликом копирати у међуспремник.
Заставице регуларних израза
Заставица је једно слово додато после обрасца које мења његово понашање. Овај алат подржава четири заставице, појединачно или у комбинацији:
| Заставица | Назив | Утицај |
|---|---|---|
g | Глобална | Проналази свако подударање у тексту уместо да се заустави код првог. |
i | Без разликовања великих и малих слова | Занемарује разлике између великих и малих слова. |
m | Вишелинијска | Омогућава да се ^ и $ подударају са почетком и крајем сваког реда, а не само са почетком и крајем целог текста. Мења место проналажења подударања, али не и проверу целог текста описану у наставку. |
s | Тачка обухвата све | Омогућава да се . подудара и са знаковима за нови ред. |
Заставице се могу комбиновати, на пример gi за глобалну претрагу без разликовања великих и малих слова или gms за глобалну, вишелинијску претрагу у којој тачка обухвата све.
Како алат проналази подударања
Претрага увек обухвата свако појављивање обрасца у тексту, због чега се број подударања понаша као да је глобална заставица укључена чак и када није изабрана у падајућем менију. Свако подударање бележи се са својим положајем и дужином, а затим се изворни текст дели на подударне и неподударне делове како би подударања могла да се истакну.
Да би проверио да ли се образац подудара са целим текстом, алат га обавија групом која не хвата подударање и поставља сидра: ^(?:pattern)$. Груписање је важно јер се | (алтернација) везује слабије од сидра. Без групе, образац као што је cat|dog, са сидрима у облику ^cat|dog$, заправо би значио „почиње са cat или се завршава са dog“, што није исто што и „цео текст је cat или dog“.
Ова провера такође уклања вишелинијску заставицу. Када је подешено m, ^ и $ подударају се на сваком прелому реда, па би сидрена провера одговорила на питање „да ли се неки ред подудара?“ уместо „да ли се подудара цео текст?“. Алат уклања m за ову проверу, а задржава i и s, јер те две заставице мењају са чим се образац подудара, а не место на ком се налазе сидра. Одговор се зато увек односи на цео текст, укључујући преломе редова.
Пример са решењем
Образац: \d+ (једна или више цифара), заставица: g, пробни текст: Room 12 has 5 chairs.
- Пронађена подударања:
12и5, па је број подударања 2. - Провера целог текста: образац се не подудара са целим текстом јер текст садржи и слова и размаке.
Ако се пробни текст промени у 12345, исти образац се подудара са целим ниском знакова, па провера целог текста враћа резултат „тачно“.
Преглед синтаксе регуларних израза
Подударање знакова
| Симбол | Значење | Пример | Подударања |
|---|---|---|---|
. | Било који знак осим знака за нови ред | a.c | „abc“, „adc“, „a1c“ |
\d | Било која цифра, од 0 до 9 | \d{3} | "123", "456" |
\D | Било који знак који није цифра | \D+ | „abc“, „xyz“ |
\w | Било које слово, цифра или доња црта | \w+ | „abc123“, „test_123“ |
\W | Било који знак који није слово, цифра или доња црта | \W+ | "!@#" |
\s | Било који знак размака | a\sb | „a b“ |
\S | Било који знак који није размак | \S+ | „abc“ |
Сидра положаја
| Симбол | Значење | Пример | Подударања |
|---|---|---|---|
^ | Почетак реда | ^abc | „abc“ на почетку реда |
$ | Крај реда | abc$ | „abc“ на крају реда |
\b | Граница речи | \bword\b | „word“ као цела реч |
Квантификатори
| Симбол | Значење | Пример | Подударања |
|---|---|---|---|
* | Нула или више појављивања претходне ставке | a*b | „b“, „ab“, „aab“ |
+ | Једно или више појављивања претходне ставке | a+b | „ab“, „aab“ |
? | Нула или једно појављивање претходне ставке | colou?r | „color“, „colour“ |
{n} | Тачно n појављивања претходне ставке | a{3} | „aaa“ |
{n,} | Најмање n појављивања претходне ставке | a{2,} | „aa“, „aaa“ |
{n,m} | Између n и m појављивања претходне ставке | a{2,4} | „aa“, „aaa“, „aaaa“ |
Скупови знакова и групе
| Симбол | Значење | Пример | Подударања |
|---|---|---|---|
[abc] | Било који један знак наведен у заградама | [aeiou] | било који појединачни самогласник |
[^abc] | Било који знак који није наведен у заградама | [^aeiou] | било који знак који није самогласник |
(abc) | Групише знакове и хвата подударање | (abc)+ | „abc“, „abcabc“ |
| a\ | b | Подудара се са a или b | cat\ |
Вреди знати још две функције. Позитивни поглед унапред, записан као a(?=b), подудара се са „a“ само када иза њега следи „b“, али не укључује „b“ у подударање. Позитивни поглед уназад, записан као (?<=a)b, подудара се са „b“ само када долази непосредно после „a“.
Уобичајени примери образаца
Ови обрасци се могу налепити у алат да би се видело како се понашају у односу на пробни текст.
Само цифре: ^\d+$ подудара се са ниском знакова састављеном искључиво од цифара, као што је „48210“, а одбацује све што садржи слово или размак.
Адреса е-поште (основна провера): ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ подудара се са адресама у облику name@domain.tld, као што је „user@example.com“. Ово је једноставна провера, а не потпуни формат адресе е-поште дефинисан интернет стандардима, па неке необичне, али важеће адресе неће проћи проверу.
Телефонски број у САД: ^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$ подудара се са форматима као што су „(123) 456-7890“, „123-456-7890“ и „1234567890“.
Датум у формату YYYY-MM-DD: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ проверава да ли је месец између 01 и 12, а дан између 01 и 31. Не проверава да ли је дан важећи за одређени месец, па прихвата „2024-02-30“, иако фебруар никада нема 30 дана.
Најчешће постављана питања
Шта је регуларни израз? Регуларни израз је низ знакова који дефинише образац претраге. Користи се за претрагу, подударање и уређивање текста у већини програмских језика и уређивача текста.
Чему служи глобална заставица?
Без глобалне заставице, претрага се обично зауставља после првог подударања. Са глобалном заставицом (g), претрага се наставља и приказује свако подударање у тексту. Овај алат увек проналази сва подударања приликом њиховог бројања, без обзира на изабрану заставицу.
Како да пронађем дословну тачку или други специјални знак?
Ставите обрнуту косу црту испред њега. На пример, \. подудара се са дословном тачком уместо са „било којим знаком“, што означава неескејпована ..
Која је разлика између .* и .*??
.* је похлепан и подудара се са онолико знакова колико може. .*? је лењ и подудара се са најмањим могућим бројем знакова, уз услов да остатак обрасца и даље буде успешан.
Зашто алат приказује да се текст не подудара у целини када се сваки ред подудара?
Провера целог текста посматра текст као једну ниску знакова, укључујући преломе редова. Образац као што је \d+ подудара се са сваким редом 12 и 34 појединачно, али два реда и прелом реда између њих нису у целини цифре, па је одговор за цео текст „не“. Да би се подударао текст који обухвата више редова, образац мора да обухвати и преломе редова, на пример помоћу [\s\S]+.
Како да проверим да ли се цела ниска знакова подудара са обрасцем, а не само њен део?
Додајте ^ на почетак и $ на крај обрасца, на пример ^[0-9]+$ за ниску знакова која садржи само цифре.
Да ли овај тестер подржава правила регуларних израза других програмских језика? Овај алат користи машину за регуларне изразе уграђену у JavaScript. Већина основне синтаксе, као што су класе знакова и квантификатори, заједничка је језицима као што су Python, Java и Perl, али се неки детаљи разликују, па није гарантовано да ће образац који овде ради свуда имати потпуно исто понашање.
Референце
- "Regular expression." Википедија, Фондација Викимедија. https://en.wikipedia.org/wiki/Regular_expression
- MDN Web Docs. "Regular expressions." Mozilla. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
- Friedl, J. E. F. (2006). Mastering Regular Expressions. O'Reilly Media.