Bezmaksas Tiešsaistes Regex Pārbaudītājs un Validātors - Pārbaudiet Šabloni Momentāni
Pārbaudiet un validējiet regulārās izteiksmes tiešsaistē ar reāllaika izcelšanu. Bezmaksas regex šablonu pārbaudītājs ar sintakses validāciju, atbilstošajiem rezultātiem un saglabāšanas funkcionalitāti. Pārbaudiet regex tūlīt!
Regex Parauga Pārbaudītājs
Sakritības Rezultāti
Ievadiet paraugu un testa tekstu, lai redzētu rezultātus
Saglabāt Paraugu
Sakritības Rezultāti
Ievadiet paraugu un testa tekstu, lai redzētu rezultātus
Saglabātie Paraugi
Vēl nav saglabātu paraugu
Regex Simbolu Ceļvedis
.Sakrīt ar jebkuru rakstzīmi, izņemot rindiņas pārnesumu\dSakrīt ar jebkuru ciparu (0-9)\DSakrīt ar jebkuru ne-ciparu\wSakrīt ar jebkuru vārda rakstzīmi (a-z, A-Z, 0-9, _)\WSakrīt ar jebkuru ne-vārda rakstzīmi\sSakrīt ar jebkuru tukšumzīmi\SSakrīt ar jebkuru ne-tukšumzīmi^Sakrīt ar rindas sākumu$Sakrīt ar rindas beigām*Sakrīt ar 0 vai vairāk iepriekšējo rakstzīmi+Sakrīt ar 1 vai vairāk iepriekšējo rakstzīmi?Sakrīt ar 0 vai 1 iepriekšējo rakstzīmi{n}Sakrīt ar tieši n iepriekšējo rakstzīmi{n,}Sakrīt ar vismaz n iepriekšējo rakstzīmi{n,m}Sakrīt ar starp n un m iepriekšējo rakstzīmi[abc]Sakrīt ar jebkuru no rakstzīmēm iekavās[^abc]Sakrīt ar jebkuru rakstzīmi, kas nav iekavās(abc)Grupē vairākus marķierus un uztver sakritībua|bSakrīt ar a vai b\bSakrīt ar vārda robežas pozīcijuDokumentācija
Kas ir regulāro izteiksmju pārbaudītājs
Regulāro izteiksmju pārbaudītājs ir rīks, kas pārbauda regulāro izteiksmi pret teksta fragmentu un parāda, kam tā atbilst. Regulārā izteiksme jeb regex ir īsa rakstzīmju virkne, kas apraksta teksta modeli, piemēram, “trīs cipari pēc kārtas” vai “jebkurš vārds, kas sākas ar lielo burtu”. Šis regulāro izteiksmju validators ļauj lietotājam ierakstīt modeli un pārbaudes tekstu, pēc tam uzreiz redzēt izceltas atbilstības, nerakstot kodu.
Regulārās izteiksmes daudzās programmēšanas valodās izmanto teksta meklēšanai, lietotāja ievades formāta pārbaudei un noteiktu fragmentu izvilkšanai no lielāka teksta bloka. Sintakse ir kompakta, taču tajā viegli kļūdīties, tāpēc modeļa pārbaude pirms izmantošanas programmā palīdz laikus atklāt kļūdas.
Kā tiešsaistē pārbaudīt regulāro izteiksmi
- Ierakstiet modeli. Ievadiet regex modeļa laukā. Rīks pārbauda sintaksi rakstīšanas laikā un parāda kļūdas ziņojumu, ja modelis nav derīgs, piemēram, ja nav aizvērta kvadrātiekava vai iekava.
- Izvēlieties karogus. Karogi maina to, kā modelis tiek lietots (skatiet tālāk).
- Ievadiet pārbaudes tekstu. Ierakstiet vai ielīmējiet meklējamo tekstu pārbaudes teksta laukā.
- Izlasiet rezultātus. Atbilstības tekstā tiek izceltas, un rīks norāda atrasto atbilstību skaitu. Ja ir ievadīts pārbaudes teksts, rīks arī norāda, vai modelis atbilst visam tekstam no sākuma līdz beigām vai tikai tā daļai.
- Saglabājiet modeli. Modeli var saglabāt ar īsu nosaukumu, lai to vēlāk atkārtoti izmantotu. Saglabātie modeļi tiek glabāti pārlūkprogrammā, nevis serverī, tāpēc tie parādās tikai tajā pašā ierīcē un pārlūkprogrammā.
- Kopējiet rezultātus. Atbilstošo tekstu vai pašu modeli ar vienu klikšķi var kopēt starpliktuvē.
Regulāro izteiksmju modifikatori
Modifikators ir viens burts, kas pievienots aiz modeļa un maina tā darbību. Šis rīks atbalsta četrus modifikatorus atsevišķi vai kombinācijās:
| Modifikators | Nosaukums | Ietekme |
|---|---|---|
g | Globāls | Atrod visas atbilstības tekstā, nevis apstājas pie pirmās. |
i | Reģistrnejutīgs | Ignorē atšķirības starp lielajiem un mazajiem burtiem. |
m | Vairākrindu | Panāk, ka ^ un $ atbilst katras rindas sākumam un beigām, nevis tikai visa teksta sākumam un beigām. Tas maina vietas, kur tiek atrastas atbilstības, bet ne tālāk aprakstīto visa teksta pārbaudi. |
s | Punkts atbilst visam | Panāk, ka . atbilst arī rindu pārneses rakstzīmēm. |
Modifikatorus var kombinēt, piemēram, gi globālai un reģistrnejutīgai meklēšanai vai gms globālai meklēšanai vairākās rindās, kur punkts atbilst visam.
Kā rīks atrod atbilstības
Atbilstību meklētājs vienmēr meklē katru modeļa parādīšanās vietu tekstā, tāpēc atbilstību skaitīšana darbojas tā, it kā globālais karogs būtu ieslēgts, pat ja tas nolaižamajā sarakstā nav izvēlēts. Katra atbilstība tiek reģistrēta kopā ar tās pozīciju un garumu, pēc tam sākotnējais teksts tiek sadalīts atbilstošos un neatbilstošos fragmentos, lai atbilstības varētu izcelt.
Lai pārbaudītu, vai modelis atbilst visam tekstam, rīks modeli ievieto grupā, kas neveido uztveršanas grupu, un piesaista to teksta robežām: ^(?:pattern)$. Grupēšana ir svarīga, jo | (alternēšana) ir vājāk saistīta nekā robežu enkuri. Bez grupas tāds modelis kā cat|dog, kas piesaistīts ar ^cat|dog$, faktiski nozīmētu “sākas ar cat vai beidzas ar dog”, nevis “viss teksts ir cat vai dog”.
Šī pārbaude arī noņem vairāku rindu karogu. Ja ir iestatīts m, ^ un $ atbilst pie katras rindu pārneses, tāpēc piesaistītais tests atbildētu uz jautājumu “vai atbilst kāda rinda?”, nevis “vai atbilst viss teksts?”. Šai pārbaudei rīks noņem m, bet saglabā i un s, jo šie divi karogi maina to, kam modelis atbilst, nevis enkuru novietojumu. Tāpēc atbilde vienmēr attiecas uz visu tekstu, tostarp rindu pārnesēm.
Atrisināts piemērs
Modelis: \d+ (viens vai vairāki cipari), karogs: g, pārbaudes teksts: Room 12 has 5 chairs.
- Atrastās atbilstības:
12un5, tāpēc atbilstību skaits ir 2. - Visa teksta pārbaude: modelis neatbilst visam tekstam, jo tekstā ir arī burti un atstarpes.
Ja pārbaudes tekstu maina uz 12345, tas pats modelis atbilst visai virknei, tāpēc visa teksta pārbaude ziņo “patiesi”.
Regulāro izteiksmju sintakses uzziņas materiāls
Rakstzīmju atbilstība
| Simbols | Nozīme | Piemērs | Atbilst |
|---|---|---|---|
. | Jebkurai rakstzīmei, izņemot rindu pārnesi | a.c | “abc”, “adc”, “a1c” |
\d | Jebkurš cipars no 0 līdz 9 | \d{3} | "123", "456" |
\D | Jebkura rakstzīme, kas nav cipars | \D+ | “abc”, “xyz” |
\w | Jebkurš burts, cipars vai pasvītrojuma zīme | \w+ | “abc123”, “test_123” |
\W | Jebkura rakstzīme, kas nav burts, cipars vai pasvītrojuma zīme | \W+ | "!@#" |
\s | Jebkura atstarpes rakstzīme | a\sb | “a b” |
\S | Jebkura rakstzīme, kas nav atstarpes rakstzīme | \S+ | “abc” |
Pozīcijas enkuri
| Simbols | Nozīme | Piemērs | Atbilst |
|---|---|---|---|
^ | Rindas sākums | ^abc | “abc” rindas sākumā |
$ | Rindas beigas | abc$ | “abc” rindas beigās |
\b | Vārda robeža | \bword\b | “word” kā vesels vārds |
Kvantifikatori
| Simbols | Nozīme | Piemērs | Atbilst |
|---|---|---|---|
* | Iepriekšējais elements nulle vai vairāk reižu | a*b | “b”, “ab”, “aab” |
+ | Iepriekšējais elements vienu vai vairākas reizes | a+b | “ab”, “aab” |
? | Iepriekšējais elements nulle vai vienu reizi | colou?r | “color”, “colour” |
{n} | Iepriekšējais elements tieši n reizes | a{3} | “aaa” |
{n,} | Iepriekšējais elements vismaz n reizes | a{2,} | “aa”, “aaa” |
{n,m} | Iepriekšējais elements no n līdz m reizēm | a{2,4} | “aa”, “aaa”, “aaaa” |
Rakstzīmju kopas un grupas
| Simbols | Nozīme | Piemērs | Atbilst |
|---|---|---|---|
[abc] | Jebkura viena no kvadrātiekavās norādītajām rakstzīmēm | [aeiou] | Jebkurš viens patskanis |
[^abc] | Jebkura rakstzīme, kas nav norādīta kvadrātiekavās | [^aeiou] | Jebkura rakstzīme, kas nav patskanis |
(abc) | Grupē rakstzīmes un uztver atbilstību | (abc)+ | “abc”, “abcabc” |
| a\ | b | Atbilst a vai b | cat\ |
Ir vērts zināt vēl divas funkcijas. Priekšskatīšana, ko raksta kā a(?=b), atbilst “a” tikai tad, ja tam seko “b”, neiekļaujot “b” atbilstībā. Aizskatīšana, ko raksta kā (?<=a)b, atbilst “b” tikai tad, ja tas atrodas uzreiz aiz “a”.
Bieži lietotu modeļu piemēri
Šos modeļus var ielīmēt rīkā, lai redzētu, kā tie darbojas ar parauga tekstu.
Tikai cipari: ^\d+$ atbilst virknei, kas sastāv tikai no cipariem, piemēram, “48210”, un noraida visu, kur ir burts vai atstarpe.
E-pasta adrese (pamata pārbaude): ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ atbilst adresēm formā name@domain.tld, piemēram, “user@example.com”. Tā ir vienkārša pārbaude, nevis pilns interneta standartos definētais e-pasta formāts, tāpēc dažas neparastas, bet derīgas adreses pārbaudi neizturēs.
ASV tālruņa numurs: ^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$ atbilst tādiem formātiem kā “(123) 456-7890”, “123-456-7890” un “1234567890”.
Datums formātā YYYY-MM-DD: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ pārbauda, vai mēnesis ir no 01 līdz 12 un diena ir no 01 līdz 31. Tā nepārbauda, vai diena ir derīga konkrētajam mēnesim, tāpēc pieņem “2024-02-30”, lai gan februārī nekad nav 30 dienu.
Biežāk uzdotie jautājumi
Kas ir regulārā izteiksme? Regulārā izteiksme ir rakstzīmju virkne, kas definē meklēšanas modeli. To izmanto teksta meklēšanai, atbilstību atrašanai un teksta rediģēšanai lielākajā daļā programmēšanas valodu un teksta redaktoru.
Ko dara globālais karogs?
Bez globālā karoga meklēšana parasti apstājas pēc pirmās atbilstības. Ar globālo karogu (g) meklēšana turpinās un ziņo par katru atbilstību tekstā. Šis rīks, skaitot atbilstības, vienmēr meklē tās visas neatkarīgi no izvēlētā karoga.
Kā panākt, lai atbilstu burtiskam punktam vai citai īpašai rakstzīmei?
Pirms tās ievietojiet atpakaļvērsto slīpsvītru. Piemēram, \. atbilst burtiskam punktam, nevis “jebkurai rakstzīmei”, ko nozīmē neekranēts ..
Kāda ir atšķirība starp .* un .*??
.* ir rijīgs un atbilst pēc iespējas lielākam rakstzīmju skaitam. .*? ir slinks un atbilst pēc iespējas mazākam rakstzīmju skaitam, vienlaikus ļaujot pārējai modeļa daļai izpildīties.
Kāpēc rīks norāda, ka teksts pilnībā neatbilst, lai gan katra rinda atbilst?
Visa teksta pārbaude tekstu aplūko kā vienu virkni, ieskaitot rindu pārneses. Tāds modelis kā \d+ atsevišķi atbilst katrai rindai 12 un 34, taču abas rindas kopā ar starp tām esošo rindu pārnesi nesastāv tikai no cipariem, tāpēc pilna teksta atbilde ir “nē”. Lai atbilstu tekstam, kas aptver vairākas rindas, modelim jāaptver arī rindu pārneses, piemēram, izmantojot [\s\S]+.
Kā pārbaudīt, vai visai virknei, nevis tikai tās daļai, atbilst modelis?
Modeļa sākumā pievienojiet ^ un beigās $, piemēram, ^[0-9]+$ virknei, kas sastāv tikai no cipariem.
Vai šis pārbaudītājs atbilst citu programmēšanas valodu regex noteikumiem? Šis rīks izmanto JavaScript iebūvēto regulāro izteiksmju interpretatoru. Lielākā daļa pamata sintakses, piemēram, rakstzīmju klases un kvantori, ir kopīga valodām, tostarp Python, Java un Perl, taču dažas detaļas atšķiras, tāpēc nav garantēts, ka šeit funkcionējošs modelis visur darbosies identiski.
Atsauces
- "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.