CodeKitHub
Alati za tekst

Testiranje regularnih izraza online

Zadnje ažurirano:

Alat za testiranje regularnih izraza omogućuje vam da napišete regularni izraz i odmah vidite kako se podudara sa stvarnim tekstom, s hvatajućim grupama i oznakama vidljivima dok tipkate — ovaj pokreće JavaScript modul opisan u MDN vodiču o regularnim izrazima, istu sintaksu koju koriste Node.js i svaki preglednik. Odličan za izradu i otklanjanje pogrešaka u uzorcima prije njihovog ugrađivanja u kod.

//

    Što je ovaj alat?

    Regularni izraz (regex) je kompaktan jezik uzoraka za pronalaženje, provjeru i izdvajanje teksta: uzorak za e-poštu može provjeriti unos u obrascu, \d{4}-\d{2}-\d{2} pronalazi datume, a hvatajuće grupe izdvajaju dijelove koji su vam potrebni. Gotovo svaki programski jezik i uređivač podržava regex.

    Ovaj alat za testiranje koristi JavaScript regex modul — isti onaj koji se izvršava u Node.js-u i svakom pregledniku — pa se uzorci koje ovdje izradite ponašaju identično u vašem JavaScript/TypeScript kodu. Većina uzoraka radi i nepromijenjena u Pythonu, Javi i Go-u.

    Zašto ga koristiti?

    • Povratna informacija uživo: podudaranja se ističu žutom bojom dok tipkate uzorak.
    • Hvatajuće grupe prikazane za svako podudaranje — vidite točno što će sadržavati $1 i $2.
    • Puna podrška za oznake: g (sva podudaranja), i (zanemari velika/mala slova), m (višeredno), s (točka podudara i novi red), u (unicode).
    • Jasne poruke o pogreškama kad uzorak ima sintaktičku grešku.
    • Besplatno i privatno — uzorak i tekst nikad ne napuštaju vaš preglednik.

    Kako ga koristiti

    1. Upišite svoj uzorak između dva znaka / (nema potrebe sami izbjegavati kose crte).
    2. Prilagodite oznake u malom okviru nakon druge crte / — zadana g pronalazi sva podudaranja.
    3. Zalijepite ispod svoj testni tekst.
    4. Podudaranja se ističu odmah; hvatajuće grupe navedene su ispod.
    5. Ako uzorak nije valjan, poruka o pogrešci objašnjava što je krivo.

    Primjer

    Ulaz

    Uzorak: (\w+)@(\w+)\.com
    Testni niz: Kontaktirajte alice@example.com ili bob@test.com

    Izlaz

    ✓ 2 podudaranja
    #1 grupe: $1=alice  $2=example
    #2 grupe: $1=bob  $2=test

    Zagrade stvaraju hvatajuće grupe na koje se možete pozvati kao $1 i $2 u zamjenama.

    Praktični savjeti

    • Provjeravate unos e-pošte? ^[^\s@]+@[^\s@]+\.[^\s@]+$ je popustljiv uzorak koji hvata očite tipfelere bez odbijanja valjanih, ali neuobičajenih adresa — puna usklađenost s RFC 5322 zahtijeva biblioteku, ne jedan redak.
    • Izdvajanje parametara upita iz URL-a: [?&]([^=]+)=([^&]*) s oznakom g, zatim čitajte $1/$2 po podudaranju umjesto ručnog dijeljenja po & i =.
    • Namjeravate koristiti uzorak u .replace()? Prvo ga testirajte ovdje — ono što se ističe točno je ono što će .replace() dotaknuti, uključujući hvatajuće grupe.
    • Parsirate višeredne zapisnike (podudaranje vremenske oznake na početku svakog retka)? Dodajte oznaku m tako da se ^ i $ sidre po retku umjesto po cijelom nizu.
    • Kopirali ste uzorak iz Pythona ili PHP-a i ne podudara se ovdje? Provjerite ima li imenovanih grupa (?P<name>...) — JavaScript koristi (?<name>...), bez P — ili posesivnih kvantifikatora (++, *+), koji ne postoje u JavaScript regexu.

    JavaScript testiranje regexa, ne generičko

    Ovaj alat pokreće JavaScriptov ugrađeni RegExp modul — točnu putanju koda iza str.match(pattern) ili pattern.test(str) u konzoli preglednika ili Node.js-u. To se razlikuje od testiranja prema PCRE-u (koji koristi PHP, i prema kojem se mnogi "univerzalni" alati za testiranje regexa postavljaju po zadanome) ili Pythonovom re modulu: JavaScript nema posesivne kvantifikatore ni atomske grupe, a imenovane hvatajuće grupe koriste (?<name>...) umjesto PCRE/Pythonovog (?P<name>...).

    Ako se spremate ugraditi uzorak u JS ili TypeScript — provjeru obrasca, usmjerivač ruta, parser zapisnika — testiranje ovdje znači nulti nesklad verzija: ono što se ističe na ovoj stranici točno je ono što new RegExp(pattern, flags) podudara u vremenu izvođenja.

    Gdje se ovo uklapa u stvarne radne procese

    Test regexa rijetko stoji sam za sebe. Uobičajeni slijed: potvrdite uzorak ovdje, pokrenite stvarni .replace() u svom kodu, zatim usporedite tekst prije/poslije kako biste bili sigurni da je zamjena učinila upravo ono što ste očekivali i ništa više.

    Izdvajanje strukturiranih podataka hvatajućim grupama često se izravno nastavlja u JSON — formatirajte izdvojeni izlaz kako biste provjerili je li parsiran onako kako ste očekivali.

    Usporedba teksta · JSON Formatter

    Često postavljana pitanja

    Koju verziju regex-a koristi ovaj alat?

    JavaScript (ECMAScript), modul u svakom pregledniku i Node.js-u. Osnovna sintaksa je prenosiva, no neke se značajke razlikuju među jezicima — npr. podrška za lookbehind i sintaksa imenovanih grupa razlikuju se u Pythonu i Javi.

    Zašto moj uzorak pronalazi samo prvo podudaranje?

    Nedostaje oznaka g (globalno). Bez g, regex staje nakon prvog podudaranja. Ovaj alat po zadanome koristi g — provjerite niste li je uklonili.

    Zašto se . ne podudara s prijelomima retka u mom tekstu?

    Po zadanome, . se podudara sa svakim znakom osim novog retka. Dodajte oznaku s (dotall) da se . podudara i s novim retcima, ili koristite [\s\S] kao prenosivu alternativu.

    Što znače rezultati hvatajućih grupa?

    Svaki par zagrada u vašem uzorku hvata tekst koji je podudario. $1 je prva grupa, $2 druga i tako dalje — na njih se pozivate u operacijama zamjene i kodu za izdvajanje.

    Zašto je moj regex spor ili se zamrzava?

    Vjerojatno je riječ o katastrofalnom vraćanju unatrag (backtracking), uzrokovanom ugniježđenim kvantifikatorima poput (a+)+ na tekstu koji se ne podudara. Prepišite uzorak kako biste izbjegli dvosmisleno ponavljanje. Ovaj alat ograničava se na 1000 podudaranja radi odzivnosti.

    Povezani alati