Ingyenes Online Regex Tesztelő & Validáló - Minták Azonnali Tesztelése
Tesztelje és ellenőrizze a reguláris kifejezéseket online, valós idejű kiemelésekkel. Ingyenes regex minta tesztelő szintaxis validálással, egyezési eredményekkel és mentési funkcióval. Tesztelje a regex-et most!
Regex Minta Tesztelő
Egyezési Eredmények
Adjon meg egy mintát és tesztelendő szöveget az eredmények megtekintéséhez
Minta Mentése
Egyezési Eredmények
Adjon meg egy mintát és tesztelendő szöveget az eredmények megtekintéséhez
Mentett Minták
Még nincsenek mentett minták
Regex Szimbólumok Útmutatója
.Bármely karaktert egyezteti, kivéve újsor\dBármely számjegyet egyezteti (0-9)\DBármely nem számjegyet egyezteti\wBármely szókaraktert egyezteti (a-z, A-Z, 0-9, _)\WBármely nem szókaraktert egyezteti\sBármely whitespace karaktert egyezteti\SBármely nem whitespace karaktert egyezteti^Sor elejét egyezteti$Sor végét egyezteti*Megelőző karakter 0 vagy több előfordulását egyezteti+Megelőző karakter 1 vagy több előfordulását egyezteti?Megelőző karakter 0 vagy 1 előfordulását egyezteti{n}Megelőző karakter pontosan n előfordulását egyezteti{n,}Megelőző karakter legalább n előfordulását egyezteti{n,m}Megelőző karakter n és m közötti előfordulását egyezteti[abc]A zárójelben lévő karakterek bármelyikét egyezteti[^abc]A zárójelben nem lévő karaktereket egyezteti(abc)Több tokent csoportosít és rögzíti az egyezésta|ba vagy b egyeztetése\bSzóhatár pozícióját egyeztetiDokumentáció
Mi az a regex-tesztelő?
A regex-tesztelő olyan eszköz, amely ellenőriz egy reguláris kifejezést egy szövegrészlettel szemben, és megmutatja, mire illeszkedik. A reguláris kifejezés, röviden regex, karakterek rövid sorozata, amely egy szövegbeli mintát ír le, például „három egymás utáni számjegyet” vagy „bármely nagybetűvel kezdődő szót”. Ezzel a regex-érvényesítővel a felhasználó beírhat egy mintát és tesztszöveget, majd azonnal láthatja a kiemelt találatokat, kódírás nélkül.
A reguláris kifejezéseket számos programozási nyelvben használják szöveg keresésére, a felhasználói bevitel megfelelő formátumának ellenőrzésére és nagyobb szövegblokkok meghatározott részeinek kinyerésére. A szintaxis tömör, de könnyű elrontani, ezért a minta programban való használata előtti tesztelés segít időben felfedezni a hibákat.
Reguláris kifejezés online tesztelése
- Minta beírása. Írja be a regexet a mintamezőbe. Az eszköz gépelés közben ellenőrzi a szintaxist, és hibaüzenetet jelenít meg, ha a minta érvénytelen, például ha egy szögletes zárójel vagy zárójel nyitva marad.
- Jelzők kiválasztása. A jelzők módosítják a minta alkalmazásának módját (lásd alább).
- Tesztszöveg megadása. Írja be vagy illessze be a keresendő szöveget a tesztszövegmezőbe.
- Eredmények megtekintése. A találatok kiemelve jelennek meg a szövegben, az eszköz pedig közli a talált egyezések számát. Ha van tesztszöveg, azt is jelzi, hogy a minta a teljes szövegre az elejétől a végéig illeszkedik-e, vagy csak annak egy részére.
- Minta mentése. A minta rövid címkével tárolható, így később újra felhasználható. A mentett mintákat a böngésző tárolja, nem egy szerver, ezért csak ugyanazon az eszközön és böngészőben jelennek meg.
- Eredmények másolása. A megtalált szöveg vagy maga a minta egyetlen kattintással a vágólapra másolható.
Regexjelzők
A jelző egy minta után írt egyetlen betű, amely módosítja annak működését. Ez az eszköz négy jelzőt támogat, önállóan vagy kombinálva:
| Jelző | Megnevezés | Hatás |
|---|---|---|
g | Globális | A szövegben minden találatot megkeres, ahelyett hogy az elsőnél leállna. |
i | Kis- és nagybetűkre nem érzékeny | Figyelmen kívül hagyja a kis- és nagybetűk közötti különbséget. |
m | Többsoros | A ^ és a $ az egyes sorok elejére és végére illeszkedik, nem csupán a teljes szöveg elejére és végére. Módosítja, hol találhatók a találatok, de nem változtatja meg az alább ismertetett teljes szövegre vonatkozó ellenőrzést. |
s | Pont mindenre | A . a sortörés karaktereire is illeszkedik. |
A jelzők kombinálhatók, például a gi globális és kis- és nagybetűkre nem érzékeny működést jelent, a gms pedig együtt globális, többsoros és „pont mindenre” működést.
Hogyan találja meg az eszköz a találatokat?
A kereső mindig a minta minden előfordulását megkeresi a szövegben, ezért a találatok számlálása úgy működik, mintha a globális jelző be lenne kapcsolva akkor is, ha a legördülő menüben nincs kiválasztva. Minden találatot a pozíciójával és hosszával együtt rögzít, majd az eredeti szöveget találati és nem találati részekre bontja, hogy a találatok kiemelhetők legyenek.
Annak ellenőrzéséhez, hogy egy minta a teljes szövegre illeszkedik-e, az eszköz nem rögzítő csoportba foglalja és horgonyokkal látja el a mintát: ^(?:pattern)$. A csoportosítás azért számít, mert a | (alternáció) lazábban köt, mint a horgonyok. Csoport nélkül egy olyan minta, mint a cat|dog, a ^cat|dog$ formában horgonyozva valójában azt jelentené, hogy „cat kezdetű vagy dog végű”, ami nem ugyanaz, mint az, hogy „a teljes szöveg cat vagy dog”.
Ez az ellenőrzés a többsoros jelzőt is elhagyja. Ha a m be van állítva, a ^ és a $ minden sortörésnél illeszkedik, ezért a horgonyzott teszt arra válaszolna, hogy „illeszkedik-e valamelyik sor?”, nem pedig arra, hogy „illeszkedik-e a teljes szöveg?”. Az eszköz eltávolítja az m jelzőt ehhez az ellenőrzéshez, és megtartja az i és s jelzőt, mert ez a kettő azt módosítja, hogy mire illeszkedik a minta, nem pedig azt, hogy hol helyezkednek el a horgonyok. A válasz ezért mindig a teljes szövegre vonatkozik, a sortöréseket is beleértve.
Kidolgozott példa
Minta: \d+ (egy vagy több számjegy), jelző: g, tesztszöveg: Room 12 has 5 chairs.
- Találatok:
12és5, ezért a találatok száma 2. - Teljes szövegre vonatkozó ellenőrzés: a minta nem illeszkedik a teljes szövegre, mert a szöveg betűket és szóközöket is tartalmaz.
Ha a tesztszöveget erre módosítjuk: 12345, ugyanaz a minta illeszkedik a teljes karakterláncra, így a teljes szövegre vonatkozó ellenőrzés igaz eredményt ad.
A regex szintaxisának hivatkozása
Karakterek illesztése
| Szimbólum | Jelentés | Példa | Illeszkedés |
|---|---|---|---|
. | Bármely karakter, a sortörés kivételével | a.c | „abc”, „adc”, „a1c” |
\d | Bármely számjegy, 0 és 9 között | \d{3} | "123", "456" |
\D | Bármely karakter, amely nem számjegy | \D+ | „abc”, „xyz” |
\w | Bármely betű, számjegy vagy aláhúzásjel | \w+ | „abc123”, „test_123” |
\W | Bármely karakter, amely nem betű, számjegy vagy aláhúzásjel | \W+ | "!@#" |
\s | Bármely üres karakter | a\sb | „a b” |
\S | Bármely karakter, amely nem üres karakter | \S+ | „abc” |
Pozícióhorgonyok
| Szimbólum | Jelentés | Példa | Illeszkedés |
|---|---|---|---|
^ | Sor eleje | ^abc | „abc” a sor elején |
$ | Sor vége | abc$ | „abc” a sor végén |
\b | Szóhatár | \bword\b | „word” önálló szóként |
Ismétlési mennyiségek
| Szimbólum | Jelentés | Példa | Illeszkedés |
|---|---|---|---|
* | Az előző elem nullaszor vagy többször | a*b | „b”, „ab”, „aab” |
+ | Az előző elem egyszer vagy többször | a+b | „ab”, „aab” |
? | Az előző elem nulla- vagy egyszeri előfordulása | colou?r | „color”, „colour” |
{n} | Az előző elem pontosan n-szeri előfordulása | a{3} | „aaa” |
{n,} | Az előző elem legalább n-szeri előfordulása | a{2,} | „aa”, „aaa” |
{n,m} | Az előző elem n- és m-szeri előfordulása között | a{2,4} | „aa”, „aaa”, „aaaa” |
Karakterkészletek és csoportok
| Szimbólum | Jelentés | Példa | Illeszkedés |
|---|---|---|---|
[abc] | A szögletes zárójelek között felsorolt bármely egy karakter | [aeiou] | Bármely egyetlen magánhangzó |
[^abc] | Bármely, a szögletes zárójelek között fel nem sorolt karakter | [^aeiou] | Bármely nem magánhangzó karakter |
(abc) | Csoportosítja a karaktereket, és rögzíti a találatot | (abc)+ | „abc”, „abcabc” |
| a | b | „a” vagy „b” illesztése | cat |
Két további funkciót érdemes ismerni. A lookahead, amelyet a a(?=b) jelöl, csak akkor illeszti az „a” karaktert, ha azt a „b” követi, de a „b”-t nem veszi bele a találatba. A lookbehind, amelyet a (?<=a)b jelöl, csak akkor illeszti a „b” karaktert, ha közvetlenül az „a” után áll.
Gyakori mintapéldák
Ezek a minták beilleszthetők az eszközbe, hogy megtekintsük, hogyan működnek mintaszövegeken.
Csak számjegyek: A ^\d+$ olyan karakterláncra illeszkedik, amely kizárólag számjegyekből áll, például „48210”, és elutasít minden betűt vagy szóközt tartalmazó értéket.
E-mail-cím (alapszintű ellenőrzés): A ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ az name@domain.tld formátumú címekre illeszkedik, például a „user@example.com” címre. Ez egyszerű ellenőrzés, nem az internetes szabványok által meghatározott teljes e-mail-formátum, ezért néhány szokatlan, de érvényes cím hibásnak minősül.
Amerikai telefonszám: A ^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$ az olyan formátumokra illeszkedik, mint a „(123) 456-7890”, a „123-456-7890” és a „1234567890”.
Dátum ÉÉÉÉ-HH-NN formátumban: A ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ ellenőrzi, hogy a hónap 01 és 12, a nap pedig 01 és 31 közé esik-e. Nem ellenőrzi, hogy a nap érvényes-e az adott hónapban, ezért elfogadja a „2024-02-30” értéket is, noha februárban soha nincs 30 nap.
Gyakran ismételt kérdések
Mi az a reguláris kifejezés? A reguláris kifejezés olyan karakterek sorozata, amely meghatároz egy keresési mintát. A legtöbb programozási nyelvben és szövegszerkesztőben szöveg keresésére, illesztésére és szerkesztésére használják.
Mire szolgál a globális jelző?
Globális jelző nélkül a keresés általában az első találat után leáll. A globális jelzővel (g) a keresés folytatódik, és a szöveg minden találatát közli. Ez az eszköz a választott jelzőtől függetlenül mindig minden találatot megkeres a számláláskor.
Hogyan illeszthetek pontot vagy más speciális karaktert szó szerint?
Írjon elé fordított törtjelet. Például a \. literális pontra illeszkedik az „bármely karakter” helyett, amit a escape nélküli . jelent.
Mi a különbség a .* és a .*? között?
A .* mohó, és annyi karakterre illeszkedik, amennyire csak tud. A .*? lusta, és a lehető legkevesebb karakterre illeszkedik úgy, hogy a minta többi része még sikeres legyen.
Miért jelzi az eszköz, hogy a szöveg nem illeszkedik teljes egészében, ha minden sora illeszkedik?
A teljes szövegre vonatkozó ellenőrzés a szöveget egyetlen karakterláncként kezeli, a sortörésekkel együtt. Egy olyan minta, mint a \d+, külön-külön illeszkedik a 12 és a 34 sorokra, de a két sor és a közöttük lévő sortörés együtt nem csak számjegyekből áll, ezért a teljes szövegre adott válasz nem. Több sort átfogó szöveg illesztéséhez a mintának a sortöréseket is le kell fednie, például a [\s\S]+ mintával.
Hogyan ellenőrizhetem, hogy egy teljes karakterlánc illeszkedik-e a mintára, nem csak annak egy része?
Adja hozzá a ^ jelet a minta elejéhez és a $ jelet a végéhez, például a ^[0-9]+$ mintát a csak számjegyekből álló karakterlánchoz.
Ez a tesztelő más programozási nyelvek regexszabályaival is működik? Ez az eszköz a JavaScriptbe beépített reguláriskifejezés-motort használja. Az alapvető szintaxis nagy része, például a karakterosztályok és az ismétlési mennyiségek, közös a Python, a Java és a Perl nyelvvel is, de egyes részletek eltérnek, ezért egy itt működő minta nem feltétlenül viselkedik mindenhol ugyanúgy.
Hivatkozások
- "Regular expression." Wikipédia, Wikimedia Foundation. 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.