Hopp til innhold

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

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 treffet
a|bMatcher enten a eller b
\bMatcher en ordgrensestilling
Lastekalkulator...
📚

Dokumentasjon

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

  1. 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.
  2. Velg flagg. Flagg endrer hvordan mønsteret brukes (se nedenfor).
  3. Skriv inn testtekst. Skriv eller lim inn teksten det skal søkes i, i tekstboksen for testtekst.
  4. 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.
  5. 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.
  6. 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:

FlaggNavnEffekt
gGlobaltFinner alle treff i teksten i stedet for å stoppe ved det første.
iSkiller ikke mellom store og små bokstaverIgnorerer forskjeller mellom store og små bokstaver.
mFlere linjerGjø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.
sPunktum samsvarer med altGjø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: 12 og 5, 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

SymbolBetydningEksempelSamsvarer med
.Et hvilket som helst tegn unntatt linjeskifta.c«abc», «adc», «a1c»
\dEthvert siffer, 0 til 9\d{3}"123", "456"
\DEthvert tegn som ikke er et siffer\D+«abc», «xyz»
\wEnhver bokstav, ethvert siffer eller understrek\w+«abc123», «test_123»
\WEthvert tegn som ikke er en bokstav, et siffer eller en understrek\W+"!@#"
\sEthvert mellomromstegna\sb«a b»
\SEthvert tegn som ikke er et mellomromstegn\S+«abc»

Posisjonsforankringer

SymbolBetydningEksempelSamsvarer med
^Begynnelsen av en linje^abc«abc» i begynnelsen av en linje
$Slutten av en linjeabc$«abc» på slutten av en linje
\bEn ordgrense\bword\b«word» som et helt ord

Kvantorer

SymbolBetydningEksempelSamsvarer med
*Null eller flere av det foregående elementeta*b«b», «ab», «aab»
+Ett eller flere av det foregående elementeta+b«ab», «aab»
?Null eller ett av det foregående elementetcolou?r«color», «colour»
{n}Nøyaktig n av det foregående elementeta{3}«aaa»
{n,}Minst n av det foregående elementeta{2,}«aa», «aaa»
{n,m}Mellom n og m av det foregående elementeta{2,4}«aa», «aaa», «aaaa»

Tegnsett og grupper

SymbolBetydningEksempelSamsvarer 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\bSamsvarer med a eller bcat\

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

  1. "Regular expression." Wikipedia, Wikimedia Foundation. https://en.wikipedia.org/wiki/Regular_expression
  2. MDN Web Docs. "Regular expressions." Mozilla. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
  3. Friedl, J. E. F. (2006). Mastering Regular Expressions. O'Reilly Media.