Tasuta Veebipõhine Regex Testija & Validaator - Kontrolli Mustreid Koheselt
Testige ja valideerige regulaaravaldisi veebis reaalajas esiletõstmisega. Tasuta regex mustri testija süntaksi valideerimise, vaste tulemuste ja salvestamise funktsiooniga. Testige regexid kohe!
Regex Mustri Testija
Vaste Tulemused
Sisestage muster ja testtekst tulemuste nägemiseks
Salvesta Muster
Vaste Tulemused
Sisestage muster ja testtekst tulemuste nägemiseks
Salvestatud Mustrid
Veel pole salvestatud mustreid
Regex Sümbolite Juhend
.Vastab igale märgile, välja arvatud reavahetusele\dVastab igale numbrimärgile (0-9)\DVastab igale mittedigitaalsele märgile\wVastab igale sõnamärgile (a-z, A-Z, 0-9, _)\WVastab igale mittesõnalisele märgile\sVastab igale tühikumärgile\SVastab igale mittetühikumärgile^Vastab rea algusele$Vastab rea lõpule*Vastab 0 või enamale eelneva märgi kordusele+Vastab 1 või enamale eelneva märgi kordusele?Vastab 0 või 1 eelneva märgi kordusele{n}Vastab täpselt n eelneva märgi kordusele{n,}Vastab vähemalt n eelneva märgi kordusele{n,m}Vastab n ja m vahel olevale eelneva märgi kordusele[abc]Vastab ühele sulgudes olevatest märkidest[^abc]Vastab märgile, mis ei ole sulgudes(abc)Grupeerib mitu märki koos ja salvestab vastea|bVastab kas a-le või b-le\bVastab sõnapiiri positsioonileDokumentatsioon
Mis on regulaaravaldise testija
Regulaaravaldise testija on tööriist, mis kontrollib regulaaravaldise vastavust tekstilõigule ja näitab, millise tekstiosaga see kattub. Regulaaravaldis ehk regex on lühike märgijada, mis kirjeldab tekstis esinevat mustrit, näiteks „kolm järjestikust numbrit” või „mis tahes sõna, mis algab suure algustähega”. See regulaaravaldise valideerija võimaldab sisestada mustri ja testteksti ning näha vasteid kohe esiletõstetuna, ilma koodi kirjutamata.
Regulaaravaldisi kasutatakse paljudes programmeerimiskeeltes tekstist otsimiseks, kasutaja sisendi õige vormingu kontrollimiseks ja suuremast tekstiplokist kindlate osade eraldamiseks. Süntaks on kompaktne, kuid seda on lihtne valesti kirjutada, seega aitab mustri testimine enne programmis kasutamist vead varakult avastada.
Kuidas regulaaravaldist veebis testida
- Sisestage muster. Sisestage regex mustriväljale. Tööriist kontrollib süntaksit sisestamise ajal ja näitab veateadet, kui muster on vigane, näiteks kui sulg või ümarsulg on sulgemata.
- Valige lipud. Lipud muudavad seda, kuidas mustrit rakendatakse (vt allpool).
- Sisestage testtekst. Sisestage või kleepige otsitav tekst testteksti kasti.
- Lugege tulemusi. Vasted tõstetakse tekstis esile ja tööriist teatab leitud vastete arvu. Kui testtekst on olemas, näitab see ka, kas muster vastab kogu tekstile algusest lõpuni või ainult selle osale.
- Salvestage muster. Mustri saab salvestada lühikese sildiga, et seda hiljem uuesti kasutada. Salvestatud mustreid hoitakse brauseris, mitte serveris, seega on need nähtavad ainult samas seadmes ja brauseris.
- Kopeerige tulemused. Vastavat teksti või mustrit ennast saab ühe klõpsuga lõikelauale kopeerida.
Regexi lipud
Lipp on mustri järele lisatav üksiktäht, mis muudab selle käitumist. See tööriist toetab nelja lippu eraldi või kombineeritult:
| Lipp | Nimetus | Mõju |
|---|---|---|
g | Globaalne | Leiab tekstist kõik vasted, selle asemel et peatuda esimesel. |
i | Tõstutundetu | Eirab suur- ja väiketähtede erinevust. |
m | Mitmerealine | Paneb ^ ja $ vastama iga rea algusele ja lõpule, mitte ainult kogu teksti algusele ja lõpule. See muudab vastete leidmise kohta, kuid mitte allpool kirjeldatud kogu teksti kontrolli. |
s | Punkt vastab kõigele | Paneb . vastama ka reavahetusmärkidele. |
Lippe saab kombineerida, näiteks gi globaalseks ja tõstutundetuks otsinguks või gms globaalseks, mitmerealiseks ja kõikidele märkidele vastavaks otsinguks korraga.
Kuidas tööriist vasteid leiab
Sobitaja otsib tekstist alati mustri iga esinemiskoha, mistõttu käitub vastete loendamine nii, nagu oleks globaalne lipp sisse lülitatud, isegi kui seda rippmenüüst ei valita. Iga vaste salvestatakse koos oma asukoha ja pikkusega, seejärel jagatakse algne tekst vasteteks ja mittevasteteks osadeks, et vasteid saaks esile tõsta.
Et kontrollida, kas muster vastab kogu tekstile, ümbritseb tööriist mustri mittesalvestava rühmaga ja ankurdab selle: ^(?:pattern)$. Rühmitamine on oluline, sest | (alternatsioon) seostub ankrutest nõrgemalt. Ilma rühmata tähendaks ankurdatud muster nagu cat|dog kujul ^cat|dog$ tegelikult „algab sõnaga cat või lõpeb sõnaga dog”, mis ei ole sama mis „kogu tekst on cat või dog”.
See kontroll eemaldab ka mitmerealise lipu. Kui m on määratud, vastavad ^ ja $ iga reavahetuse kohal, nii et ankurdatud test vastaks küsimusele „kas mõni rida sobib?”, mitte küsimusele „kas kogu tekst sobib?”. Tööriist eemaldab selle kontrolli jaoks m ning säilitab i ja s, sest need kaks muudavad seda, millele muster vastab, mitte ankrute asukohta. Seega viitab vastus alati kogu tekstile, sealhulgas reavahetustele.
Lahendatud näide
Muster: \d+ (üks või enam numbrit), lipp: g, testtekst: Room 12 has 5 chairs.
- Leitud vasted:
12ja5, seega on vasteid kokku 2. - Kogu teksti kontroll: muster ei vasta kogu tekstile, sest tekst sisaldab ka tähti ja tühikuid.
Kui testtekst muuta väärtuseks 12345, vastab sama muster kogu stringile ja kogu teksti kontroll annab tulemuseks „tõene”.
Regexi süntaksi teatmik
Märkide sobitamine
| Sümbol | Tähendus | Näide | Vasted |
|---|---|---|---|
. | Mis tahes märk peale reavahetuse | a.c | „abc”, „adc”, „a1c” |
\d | Mis tahes number vahemikus 0 kuni 9 | \d{3} | "123", "456" |
\D | Mis tahes märk, mis ei ole number | \D+ | „abc”, „xyz” |
\w | Mis tahes täht, number või alakriips | \w+ | „abc123”, „test_123” |
\W | Mis tahes märk, mis ei ole täht, number ega alakriips | \W+ | "!@#" |
\s | Mis tahes tühimärk | a\sb | „a b” |
\S | Mis tahes märk, mis ei ole tühimärk | \S+ | „abc” |
Positsiooniankrud
| Sümbol | Tähendus | Näide | Vasted |
|---|---|---|---|
^ | Rea algus | ^abc | „abc” rea alguses |
$ | Rea lõpp | abc$ | „abc” rea lõpus |
\b | Sõnapiir | \bword\b | „word” tervikliku sõnana |
Kordajad
| Sümbol | Tähendus | Näide | Vasted |
|---|---|---|---|
* | Eelnevat elementi null või rohkem korda | a*b | „b”, „ab”, „aab” |
+ | Eelnevat elementi üks või rohkem korda | a+b | „ab”, „aab” |
? | Eelnevat elementi null või üks kord | colou?r | „color”, „colour” |
{n} | Eelnevat elementi täpselt n korda | a{3} | „aaa” |
{n,} | Eelnevat elementi vähemalt n korda | a{2,} | „aa”, „aaa” |
{n,m} | Eelnevat elementi n kuni m korda | a{2,4} | „aa”, „aaa”, „aaaa” |
Märgikogumid ja rühmad
| Sümbol | Tähendus | Näide | Vasted |
|---|---|---|---|
[abc] | Mis tahes üks sulgudes loetletud märk | [aeiou] | Mis tahes üksiktäishäälik |
[^abc] | Mis tahes märk, mida sulgudes ei ole loetletud | [^aeiou] | Mis tahes märk, mis ei ole täishäälik |
(abc) | Rühmitab märgid ja salvestab vaste | (abc)+ | „abc”, „abcabc” |
| a\ | b | Sobib a või b-ga | cat\ |
Tasub teada veel kahte funktsiooni. Ettelook, kujul a(?=b), vastab „a”-le ainult siis, kui sellele järgneb „b”, kuid ei kaasa „b”-d vastesse. Tagasivaade, kujul (?<=a)b, vastab „b”-le ainult siis, kui see tuleb kohe pärast „a”-d.
Levinud mustrinäited
Need mustrid saab tööriista kleepida, et näha, kuidas need näidistekstiga käituvad.
Ainult numbrid: ^\d+$ vastab ainult numbritest koosnevale stringile, näiteks „48210”, ning lükkab tagasi kõik tähe või tühikuga väärtused.
E-posti aadress (põhikontroll): ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ vastab aadressidele kujul name@domain.tld, näiteks „user@example.com”. See on lihtne kontroll, mitte internetistandardites määratletud täielik e-posti vorming, seega mõned ebatavalised, kuid kehtivad aadressid ei läbi seda kontrolli.
USA telefoninumber: ^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$ vastab vormingutele nagu „(123) 456-7890”, „123-456-7890” ja „1234567890”.
Kuupäev vormingus YYYY-MM-DD: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ kontrollib, et kuu jääks vahemikku 01 kuni 12 ja päev vahemikku 01 kuni 31. See ei kontrolli, kas päev on konkreetses kuus kehtiv, seega aktsepteerib see väärtust „2024-02-30”, kuigi veebruaris ei ole kunagi 30 päeva.
Korduma kippuvad küsimused
Mis on regulaaravaldis? Regulaaravaldis on märgijada, mis määratleb otsingumustri. Seda kasutatakse enamikes programmeerimiskeeltes ja tekstiredaktorites teksti otsimiseks, sobitamiseks ja muutmiseks.
Mida globaalne lipp teeb?
Ilma globaalse liputa peatub otsing tavaliselt pärast esimest vastet. Globaalse lipuga (g) otsing jätkub ja teatab tekstis iga vaste. See tööriist otsib vastete loendamisel alati kõik vasted, olenemata valitud lipust.
Kuidas sobitada sõnasõnalist punkti või muud erimärki?
Lisage selle ette kaldkriips. Näiteks \. vastab sõnasõnalisele punktile, mitte „mis tahes märgile”, mida tähendab varjestamata ..
Mis vahe on .* ja .*??
.* on ahne ja sobitab nii palju märke kui võimalik. .*? on laisk ja sobitab nii vähe märke kui võimalik, võimaldades ülejäänud mustril siiski sobituda.
Miks teatab tööriist, et tekst ei sobitu täielikult, kui iga rida sobitub?
Kogu teksti kontroll käsitleb teksti ühe stringina, kaasa arvatud reavahetused. Muster nagu \d+ sobitub iga reaga eraldi, nii 12 kui ka 34, kuid need kaks rida koos nendevahelise reavahetusega ei koosne täielikult numbritest, seega on kogu teksti vastus eitav. Mitut rida hõlmava teksti sobitamiseks peab muster katma ka reavahetused, näiteks [\s\S]+ abil.
Kuidas kontrollida, et kogu string vastaks mustrile, mitte ainult osa sellest?
Lisage mustri algusesse ^ ja lõppu $, näiteks ainult numbritest koosneva stringi jaoks ^[0-9]+$.
Kas see testija sobitab teiste programmeerimiskeelte regexireeglite järgi? See tööriist kasutab JavaScripti sisseehitatud regulaaravaldisemootorit. Enamik põhisüntaksist, näiteks märgiklassid ja kordajad, on ühine selliste keeltega nagu Python, Java ja Perl, kuid mõned üksikasjad erinevad, seega ei ole siin toimiva mustri samasugune käitumine kõikjal garanteeritud.
Viited
- "Regular expression." Wikipedia, 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.