Spring til indhold

Gratis Online Regex Tester & Validator - Test Mønstre Øjeblikkeligt

Test og validér regulære udtryk online med realtids fremhævning. Gratis regex mønster tester med syntaksvalidering, matchresultater og gemmefunktion. Test regex nu!

Regex Mønster Tester

Matchresultater

Indtast et mønster og test tekst for at se resultater

Gem Mønster

Gemte Mønstre

Ingen gemte mønstre endnu

Vejledning til Regex Symboler

.Matcher ethvert tegn undtagen linjeskift
\dMatcher ethvert ciffer (0-9)
\DMatcher ethvert ikke-ciffer
\wMatcher ethvert ordtegn (a-z, A-Z, 0-9, _)
\WMatcher ethvert ikke-ordtegn
\sMatcher ethvert mellemrumstegn
\SMatcher ethvert ikke-mellemrumstegn
^Matcher begyndelsen af linjen
$Matcher slutningen af linjen
*Matcher 0 eller flere af det foregående tegn
+Matcher 1 eller flere af det foregående tegn
?Matcher 0 eller 1 af det foregående tegn
{n}Matcher præcis n af det foregående tegn
{n,}Matcher mindst n af det foregående tegn
{n,m}Matcher mellem n og m af det foregående tegn
[abc]Matcher et af tegnene i parenteserne
[^abc]Matcher ethvert tegn, der ikke er i parenteserne
(abc)Grupperer flere tokens og indfanger matchet
a|bMatcher enten a eller b
\bMatcher en ordgrænseposition
Indlæsningsberegner...
📚

Dokumentation

Hvad er en regex-tester

En regex-tester er et værktøj, der kontrollerer et regulært udtryk i forhold til et stykke tekst og viser, hvad det matcher. Et regulært udtryk, eller regex, er en kort sekvens af tegn, der beskriver et mønster i tekst, f.eks. "tre cifre i træk" eller "et vilkårligt ord, der begynder med et stort bogstav". Denne regex-validator lader en person indtaste et mønster og noget testtekst og derefter se matchene fremhævet med det samme uden at skrive kode.

Regulære udtryk bruges i mange programmeringssprog til at søge i tekst, kontrollere at brugerinput har det rigtige format og udtrække bestemte dele fra en større tekstblok. Syntaksen er kompakt, men det er let at skrive den forkert, så test af et mønster før brug i et program hjælper med at opdage fejl tidligt.

Sådan tester du et regulært udtryk online

  1. Indtast et mønster. Indtast regex'en i mønsterfeltet. Værktøjet kontrollerer syntaksen, mens brugeren skriver, og viser en fejlmeddelelse, hvis mønsteret er ugyldigt, f.eks. hvis en kantet parentes eller en almindelig parentes ikke er lukket.
  2. Vælg flag. Flag ændrer, hvordan mønsteret anvendes (se nedenfor).
  3. Indtast testtekst. Skriv eller indsæt den tekst, der skal søges i, i feltet til testtekst.
  4. Læs resultaterne. Match fremhæves i teksten, og værktøjet angiver, hvor mange match det fandt. Hvis der er testtekst, angiver det også, om mønsteret matcher hele teksten fra start til slut eller kun en del af den.
  5. Gem et mønster. Et mønster kan gemmes med en kort etiket, så det kan genbruges senere. Gemte mønstre opbevares i browseren, ikke på en server, så de vises kun på den samme enhed og i den samme browser.
  6. Kopiér resultater. Den matchede tekst eller selve mønsteret kan kopieres til udklipsholderen med ét klik.

Regex-flag

Et flag er et enkelt bogstav, der føjes til efter et mønster og ændrer, hvordan det fungerer. Dette værktøj understøtter fire flag, alene eller kombineret:

FlagNavnEffekt
gGlobaltFinder alle match i teksten i stedet for at stoppe ved det første.
iUafhængigt af store og små bogstaverIgnorerer forskelle mellem store og små bogstaver.
mFlere linjerFår ^ og $ til at matche begyndelsen og slutningen af hver linje, ikke kun begyndelsen og slutningen af hele teksten. Det ændrer, hvor match findes, men ikke kontrollen af hele teksten, som beskrives nedenfor.
sPunktum matcher altFår . til også at matche linjeskift.

Flag kan kombineres, f.eks. gi for globalt og uafhængigt af store og små bogstaver eller gms for globalt, flere linjer og punktum matcher alt samlet.

Sådan finder værktøjet match

Matcheren søger altid efter alle forekomster af mønsteret i teksten. Derfor fungerer optællingen af match, som om det globale flag er slået til, selv når det ikke er valgt i rullemenuen. Hvert match registreres med sin position og længde, hvorefter den oprindelige tekst opdeles i matchede og ikke-matchede dele, så matchene kan fremhæves.

For at kontrollere, om et mønster matcher hele teksten, omslutter værktøjet mønsteret i en gruppe uden fangst og forankrer det: ^(?:pattern)$. Grupperingen er vigtig, fordi | (alternation) binder svagere end forankringerne. Uden gruppen ville et mønster som cat|dog, forankret som ^cat|dog$, i virkeligheden betyde "begynder med cat eller slutter med dog", hvilket ikke er det samme som "hele teksten er cat eller dog".

Denne kontrol fjerner også flaget for flere linjer. Når m er angivet, matcher ^ og $ ved hvert linjeskift, så den forankrede test ville besvare "matcher en vilkårlig linje?" i stedet for "matcher hele teksten?". Værktøjet fjerner m ved denne kontrol og beholder i og s, fordi de to ændrer, hvad mønsteret matcher, snarere end hvor forankringerne sidder. Svaret henviser derfor altid til hele teksten, inklusive dens linjeskift.

Regneeksempel

Mønster: \d+ (et eller flere cifre), flag: g, testtekst: Room 12 has 5 chairs.

  • Fundne match: 12 og 5, så antallet af match er 2.
  • Kontrol af hele teksten: Mønsteret matcher ikke hele teksten, fordi teksten også indeholder bogstaver og mellemrum.

Hvis testteksten i stedet ændres til 12345, matcher det samme mønster hele strengen, så kontrollen af hele teksten angiver sand.

Reference til regex-syntaks

Tegnmatch

SymbolBetydningEksempelMatcher
.Ethvert tegn bortset fra et linjeskifta.c"abc", "adc", "a1c"
\dEthvert ciffer, fra 0 til 9\d{3}"123", "456"
\DEthvert tegn, der ikke er et ciffer\D+"abc", "xyz"
\wEthvert bogstav, ciffer eller understregningstegn\w+"abc123", "test_123"
\WEthvert tegn, der ikke er et bogstav, ciffer eller understregningstegn\W+"!@#"
\sEthvert blanktegna\sb"a b"
\SEthvert tegn, der ikke er et blanktegn\S+"abc"

Positionsforankringer

SymbolBetydningEksempelMatcher
^Begyndelsen af en linje^abc"abc" i begyndelsen af en linje
$Slutningen af en linjeabc$"abc" i slutningen af en linje
\bEn ordgrænse\bword\b"word" som et helt ord

Kvantorer

SymbolBetydningEksempelMatcher
*Nul eller flere af det foregående elementa*b"b", "ab", "aab"
+Et eller flere af det foregående elementa+b"ab", "aab"
?Nul eller ét af det foregående elementcolou?r"color", "colour"
{n}Præcis n af det foregående elementa{3}"aaa"
{n,}Mindst n af det foregående elementa{2,}"aa", "aaa"
{n,m}Mellem n og m af det foregående elementa{2,4}"aa", "aaa", "aaaa"

Tegnmængder og grupper

SymbolBetydningEksempelMatcher
[abc]Ethvert enkelt tegn, der står i de kantede parenteser[aeiou]enhver enkelt vokal
[^abc]Ethvert tegn, der ikke står i de kantede parenteser[^aeiou]ethvert tegn, der ikke er en vokal
(abc)Grupperer tegn og fanger matchet(abc)+"abc", "abcabc"
a\bMatcher a eller bcat\

To andre funktioner er værd at kende. En lookahead, skrevet a(?=b), matcher "a", kun når det efterfølges af "b", uden at medtage "b" i matchet. En lookbehind, skrevet (?<=a)b, matcher "b", kun når det står umiddelbart efter "a".

Almindelige eksempler på mønstre

Disse mønstre kan indsættes i værktøjet for at se, hvordan de fungerer i forhold til eksempeltekst.

Kun cifre: ^\d+$ matcher en streng, der udelukkende består af cifre, f.eks. "48210", og afviser alt, der indeholder et bogstav eller et mellemrum.

E-mailadresse (grundlæggende kontrol): ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ matcher adresser i formatet name@domain.tld, f.eks. "user@example.com". Det er en enkel kontrol og ikke det fulde e-mailformat, der er defineret af internetstandarder, så nogle usædvanlige, men gyldige adresser vil blive afvist.

Amerikansk telefonnummer: ^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$ matcher 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 ligger mellem 01 og 12, og at dagen ligger mellem 01 og 31. Den kontrollerer ikke, om dagen er gyldig for den specifikke måned, så den accepterer "2024-02-30", selv om februar aldrig har 30 dage.

Ofte stillede spørgsmål

Hvad er et regulært udtryk? Et regulært udtryk er en sekvens af tegn, der definerer et søgemønster. Det bruges til at søge i, matche og redigere tekst i de fleste programmeringssprog og tekstredigeringsprogrammer.

Hvad gør det globale flag? Uden det globale flag stopper en søgning normalt efter det første match. Med det globale flag (g) fortsætter søgningen og rapporterer alle match i teksten. Dette værktøj søger altid efter alle match ved optælling, uanset hvilket flag der er valgt.

Hvordan matcher jeg et bogstaveligt punktum eller et andet specialtegn? Sæt en backslash foran det. For eksempel matcher \. et bogstaveligt punktum i stedet for "ethvert tegn", hvilket er betydningen af et punktum uden escape, ..

Hvad er forskellen mellem .* og .*?? .* er grådigt og matcher så mange tegn som muligt. .*? er dovent og matcher så få tegn som muligt, samtidig med at resten af mønsteret stadig kan matche.

Hvorfor siger værktøjet, at teksten ikke matcher fuldstændigt, når hver linje matcher? Kontrollen af hele teksten behandler teksten som én streng inklusive linjeskift. Et mønster som \d+ matcher hver linje i 12 og 34 separat, men de to linjer plus linjeskiftet mellem dem består ikke udelukkende af cifre, så svaret for hele teksten er nej. Hvis tekst, der strækker sig over flere linjer, skal matches, skal mønsteret også omfatte linjeskiftene, f.eks. med [\s\S]+.

Hvordan kontrollerer jeg, at en hel streng matcher et mønster og ikke kun en del af den? Tilføj ^ i begyndelsen og $ i slutningen af mønsteret, f.eks. ^[0-9]+$ for en streng, der kun indeholder cifre.

Matcher denne tester regex-reglerne i andre programmeringssprog? Dette værktøj bruger den regulære udtryksmotor, der er indbygget i JavaScript. Det meste af den grundlæggende syntaks, f.eks. tegnklasser og kvantorer, deles af sprog som Python, Java og Perl, men nogle detaljer er forskellige, så et mønster, der fungerer her, fungerer ikke nødvendigvis identisk alle steder.

Referencer

  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.