Gratis Online Regex Tester & Validator - Test Mønstre Umiddelbart
Test og valider regulære uttrykk online med sanntids-uthevning. Gratis regex mønster tester med syntaksvalidering, matchresultater og lagringsfunksjonalitet. Test regex nå!
Regex Mønster Tester
Treffresultater
Skriv inn et mønster og testtekst for å se resultater
Lagre Mønster
Treffresultater
Skriv inn et mønster og testtekst for å se resultater
Lagrede Mønstre
Ingen lagrede mønstre ennå
Regex Symboler Guide
.Matcher ethvert tegn unntatt linjeskift\dMatcher ethvert siffer (0-9)\DMatcher ethvert ikke-siffer\wMatcher ethvert ordtegn (a-z, A-Z, 0-9, _)\WMatcher ethvert ikke-ordtegn\sMatcher ethvert mellomromstegn\SMatcher ethvert ikke-mellomromstegn^Matcher begynnelsen av linjen$Matcher slutten av linjen*Matcher 0 eller flere av det foregående tegnet+Matcher 1 eller flere av det foregående tegnet?Matcher 0 eller 1 av det foregående tegnet{n}Matcher nøyaktig n av det foregående tegnet{n,}Matcher minst n av det foregående tegnet{n,m}Matcher mellom n og m av det foregående tegnet[abc]Matcher ett av tegnene i klammene[^abc]Matcher ethvert tegn som ikke er i klammene(abc)Grupperer flere tokens sammen og fanger opp treffeta|bMatcher enten a eller b\bMatcher en ordgrensestillingDokumentasjon
Hva er en regex-tester
En regex-tester er et verktøy som tester et regulært uttrykk mot et tekststykke og viser hva det samsvarer med. Et regulært uttrykk, eller regex, er en kort tegnsekvens som beskriver et mønster i tekst, for eksempel «tre sifre på rad» eller «et hvilket som helst ord som begynner med stor bokstav». Denne regex-valideringen lar brukeren skrive inn et mønster og litt testtekst og deretter se treffene uthevet med én gang, uten å skrive kode.
Regulære uttrykk brukes i mange programmeringsspråk til å søke i tekst, kontrollere at brukerinndata har riktig format og hente ut bestemte deler fra en større tekstblokk. Syntaksen er kompakt, men det er lett å gjøre feil, så testing av et mønster før det brukes i et program kan avdekke feil tidlig.
Slik tester du et regulært uttrykk på nettet
- Skriv inn et mønster. Skriv regex-en i mønsterfeltet. Verktøyet kontrollerer syntaksen mens brukeren skriver, og viser en feilmelding hvis mønsteret er ugyldig, for eksempel hvis en hakeparentes eller parentes ikke er lukket.
- Velg flagg. Flagg endrer hvordan mønsteret brukes (se nedenfor).
- Skriv inn testtekst. Skriv eller lim inn teksten det skal søkes i, i tekstboksen for testtekst.
- Les resultatene. Treffene utheves i teksten, og verktøyet oppgir hvor mange treff det fant. Hvis det finnes testtekst, oppgir det også om mønsteret samsvarer med hele teksten fra begynnelse til slutt, eller bare med en del av den.
- Lagre et mønster. Et mønster kan lagres med en kort etikett slik at det kan brukes på nytt senere. Lagrede mønstre oppbevares i nettleseren, ikke på en server, og vises derfor bare på samme enhet og i samme nettleser.
- Kopier resultater. Den samsvarende teksten eller selve mønsteret kan kopieres til utklippstavlen med ett klikk.
Regex-flagg
Et flagg er én bokstav som legges til etter et mønster, og som endrer hvordan det oppfører seg. Dette verktøyet støtter fire flagg, hver for seg eller i kombinasjon:
| Flagg | Navn | Effekt |
|---|---|---|
g | Globalt | Finner alle treff i teksten i stedet for å stoppe ved det første. |
i | Skiller ikke mellom store og små bokstaver | Ignorerer forskjeller mellom store og små bokstaver. |
m | Flere linjer | Gjør at ^ og $ samsvarer med begynnelsen og slutten av hver linje, ikke bare begynnelsen og slutten av hele teksten. Det endrer hvor treff finnes, men ikke kontrollen av hele teksten som beskrives nedenfor. |
s | Punktum samsvarer med alt | Gjør at . også samsvarer med linjeskifttegn. |
Flagg kan kombineres, for eksempel gi for globalt og uten forskjell på store og små bokstaver, eller gms for globalt, flere linjer og punktum som samsvarer med alt.
Slik finner verktøyet treff
Treffmotoren søker alltid etter alle forekomster av mønsteret i teksten. Derfor oppfører treffantallet seg som om det globale flagget er aktivert, selv når det ikke er valgt i nedtrekkslisten. Hvert treff registreres med posisjon og lengde, og deretter deles originalteksten opp i deler med og uten treff, slik at treffene kan utheves.
For å kontrollere om et mønster samsvarer med hele teksten, omslutter verktøyet mønsteret med en gruppe som ikke fanger opp treff, og forankrer det: ^(?:pattern)$. Grupperingen er viktig fordi | (alternasjon) binder svakere enn forankringene. Uten gruppen ville et mønster som cat|dog, forankret som ^cat|dog$, egentlig bety «begynner med cat eller slutter med dog», noe som ikke er det samme som «hele teksten er cat eller dog».
Denne kontrollen fjerner også flagget for flere linjer. Når m er satt, samsvarer ^ og $ ved hvert linjeskift, slik at den forankrede testen ville svare på «samsvarer én enkelt linje?» i stedet for «samsvarer hele teksten?». Verktøyet fjerner m i denne kontrollen og beholder i og s, fordi disse to endrer hva mønsteret samsvarer med, ikke hvor forankringene sitter. Svaret gjelder derfor alltid hele teksten, inkludert linjeskiftene.
Regneeksempel
Mønster: \d+ (ett eller flere sifre), flagg: g, testtekst: Room 12 has 5 chairs.
- Treff funnet:
12og5, så antallet treff er 2. - Kontroll av hele teksten: Mønsteret samsvarer ikke med hele teksten, fordi teksten også inneholder bokstaver og mellomrom.
Hvis testteksten i stedet endres til 12345, samsvarer det samme mønsteret med hele strengen, så kontrollen av hele teksten rapporterer sann.
Referanse for regex-syntaks
Tegnsamsvar
| Symbol | Betydning | Eksempel | Samsvarer med |
|---|---|---|---|
. | Et hvilket som helst tegn unntatt linjeskift | a.c | «abc», «adc», «a1c» |
\d | Ethvert siffer, 0 til 9 | \d{3} | "123", "456" |
\D | Ethvert tegn som ikke er et siffer | \D+ | «abc», «xyz» |
\w | Enhver bokstav, ethvert siffer eller understrek | \w+ | «abc123», «test_123» |
\W | Ethvert tegn som ikke er en bokstav, et siffer eller en understrek | \W+ | "!@#" |
\s | Ethvert mellomromstegn | a\sb | «a b» |
\S | Ethvert tegn som ikke er et mellomromstegn | \S+ | «abc» |
Posisjonsforankringer
| Symbol | Betydning | Eksempel | Samsvarer med |
|---|---|---|---|
^ | Begynnelsen av en linje | ^abc | «abc» i begynnelsen av en linje |
$ | Slutten av en linje | abc$ | «abc» på slutten av en linje |
\b | En ordgrense | \bword\b | «word» som et helt ord |
Kvantorer
| Symbol | Betydning | Eksempel | Samsvarer med |
|---|---|---|---|
* | Null eller flere av det foregående elementet | a*b | «b», «ab», «aab» |
+ | Ett eller flere av det foregående elementet | a+b | «ab», «aab» |
? | Null eller ett av det foregående elementet | colou?r | «color», «colour» |
{n} | Nøyaktig n av det foregående elementet | a{3} | «aaa» |
{n,} | Minst n av det foregående elementet | a{2,} | «aa», «aaa» |
{n,m} | Mellom n og m av det foregående elementet | a{2,4} | «aa», «aaa», «aaaa» |
Tegnsett og grupper
| Symbol | Betydning | Eksempel | Samsvarer med |
|---|---|---|---|
[abc] | Ett hvilket som helst tegn som er oppført i hakeparentesene | [aeiou] | én enkelt vokal |
[^abc] | Ethvert tegn som ikke er oppført i hakeparentesene | [^aeiou] | ethvert tegn som ikke er en vokal |
(abc) | Grupperer tegn og fanger opp treffet | (abc)+ | «abc», «abcabc» |
| a\ | b | Samsvarer med a eller b | cat\ |
To andre funksjoner er nyttige å kjenne til. En framoverskuende sjekk, skrevet a(?=b), samsvarer med «a» bare når det etterfølges av «b», uten at «b» tas med i treffet. En bakoverskuende sjekk, skrevet (?<=a)b, samsvarer med «b» bare når det kommer rett etter «a».
Vanlige eksempler på mønstre
Disse mønstrene kan limes inn i verktøyet for å se hvordan de oppfører seg mot eksempeltekst.
Bare sifre: ^\d+$ samsvarer med en streng som bare består av sifre, for eksempel «48210», og avviser alt som inneholder en bokstav eller et mellomrom.
E-postadresse (grunnleggende kontroll): ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ samsvarer med adresser på formen name@domain.tld, for eksempel «user@example.com». Dette er en enkel kontroll, ikke det fullstendige e-postformatet som er definert av internettstandarder, så enkelte uvanlige, men gyldige adresser vil bli avvist.
Amerikansk telefonnummer: ^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$ samsvarer med formater som «(123) 456-7890», «123-456-7890» og «1234567890».
Dato i formatet YYYY-MM-DD: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ kontrollerer at måneden er mellom 01 og 12, og at dagen er mellom 01 og 31. Den kontrollerer ikke om dagen er gyldig for den aktuelle måneden, så den godtar «2024-02-30», selv om februar aldri har 30 dager.
Ofte stilte spørsmål
Hva er et regulært uttrykk? Et regulært uttrykk er en tegnsekvens som definerer et søkemønster. Det brukes til å søke i, finne treff i og redigere tekst i de fleste programmeringsspråk og tekstredigeringsprogrammer.
Hva gjør det globale flagget?
Uten det globale flagget stopper et søk vanligvis etter det første treffet. Med det globale flagget (g) fortsetter søket og rapporterer hvert treff i teksten. Dette verktøyet søker alltid etter alle treff når det teller dem, uavhengig av hvilket flagg som er valgt.
Hvordan finner jeg et bokstavelig punktum eller et annet spesialtegn?
Sett en omvendt skråstrek foran det. For eksempel samsvarer \. med et bokstavelig punktum i stedet for «et hvilket som helst tegn», som er betydningen av et punktum uten escaping, ..
Hva er forskjellen mellom .* og .*??
.* er grådig og samsvarer med så mange tegn som mulig. .*? er lat og samsvarer med så få tegn som mulig, samtidig som resten av mønsteret fortsatt kan lykkes.
Hvorfor sier verktøyet at teksten ikke samsvarer i sin helhet når hver linje samsvarer?
Kontrollen av hele teksten behandler teksten som én streng, inkludert linjeskift. Et mønster som \d+ samsvarer med hver linje i 12 og 34 hver for seg, men de to linjene og linjeskiftet mellom dem består ikke bare av sifre, så svaret for hele teksten er nei. For å finne treff i tekst som går over flere linjer, må mønsteret også dekke linjeskiftene, for eksempel med [\s\S]+.
Hvordan kontrollerer jeg at en hel streng samsvarer med et mønster, ikke bare en del av den?
Legg til ^ i begynnelsen og $ på slutten av mønsteret, for eksempel ^[0-9]+$ for en streng som bare består av sifre.
Følger denne testeren regex-reglene i andre programmeringsspråk? Dette verktøyet bruker den regulære uttrykksmotoren som er innebygd i JavaScript. Det meste av kjernesyntaksen, for eksempel tegnklasser og kvantorer, er felles for språk som Python, Java og Perl, men enkelte detaljer er forskjellige. Et mønster som fungerer her, vil derfor ikke nødvendigvis oppføre seg likt overalt.
Referanser
- "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.