Gratis Online Regex-testare & Validator - Testa Mönster Direkt
Testa och validera reguljära uttryck online med realtidsmarkering. Gratis regex-mönstertest med syntaxvalidering, matchningsresultat och spara-funktionalitet. Testa regex nu!
Regex Mönster Testare
Matchningsresultat
Ange ett mönster och testtext för att se resultat
Spara Mönster
Matchningsresultat
Ange ett mönster och testtext för att se resultat
Sparade Mönster
Inga sparade mönster ännu
Guide för Regex Symboler
.Matchar valfritt tecken förutom radbrytning\dMatchar valfri siffra (0-9)\DMatchar valfritt icke-siffertecken\wMatchar valfritt ordtecken (a-z, A-Z, 0-9, _)\WMatchar valfritt icke-ordtecken\sMatchar valfritt blanktecken\SMatchar valfritt icke-blanktecken^Matchar radens början$Matchar radens slut*Matchar 0 eller fler av föregående tecken+Matchar 1 eller fler av föregående tecken?Matchar 0 eller 1 av föregående tecken{n}Matchar exakt n av föregående tecken{n,}Matchar minst n av föregående tecken{n,m}Matchar mellan n och m av föregående tecken[abc]Matchar något av tecknen inom hakparenteserna[^abc]Matchar valfritt tecken som inte finns inom hakparenteserna(abc)Grupperar flera tokens och fångar matchningena|bMatchar antingen a eller b\bMatchar en ordgränspositionDokumentation
Vad är en regex-testare
En regex-testare är ett verktyg som kontrollerar ett reguljärt uttryck mot en text och visar vad det matchar. Ett reguljärt uttryck, eller regex, är en kort teckensekvens som beskriver ett mönster i text, till exempel ”tre siffror i rad” eller ”vilket ord som helst som börjar med en versal”. Med denna regexvaliderare kan man skriva in ett mönster och testtext och sedan direkt se matchningarna markerade, utan att skriva någon kod.
Reguljära uttryck används i många programmeringsspråk för att söka i text, kontrollera att användarinmatning har rätt format och hämta ut specifika delar ur ett större textblock. Syntaxen är kompakt men lätt att skriva fel, så genom att testa ett mönster innan det används i ett program kan misstag upptäckas tidigt.
Så testar du ett reguljärt uttryck online
- Skriv ett mönster. Ange regexen i mönsterfältet. Verktyget kontrollerar syntaxen medan användaren skriver och visar ett felmeddelande om mönstret är ogiltigt, till exempel om en hakparentes eller parentes lämnas oavslutad.
- Välj flaggor. Flaggor ändrar hur mönstret tillämpas (se nedan).
- Ange testtext. Skriv eller klistra in texten som ska sökas igenom i rutan för testtext.
- Läs resultaten. Matchningarna markeras i texten och verktyget anger hur många matchningar som hittades. Om det finns testtext anges också om mönstret matchar hela texten från början till slut eller bara en del av den.
- Spara ett mönster. Ett mönster kan sparas med en kort etikett så att det kan återanvändas senare. Sparade mönster lagras i webbläsaren, inte på en server, och visas därför bara på samma enhet och i samma webbläsare.
- Kopiera resultaten. Den matchade texten eller själva mönstret kan kopieras till urklipp med ett klick.
Regexflaggor
En flagga är en enskild bokstav som läggs till efter ett mönster och ändrar hur det fungerar. Verktyget stöder fyra flaggor, var för sig eller i kombination:
| Flagga | Namn | Effekt |
|---|---|---|
g | Global | Hittar alla matchningar i texten i stället för att stanna vid den första. |
i | Skiftlägesokänslig | Ignorerar skillnader mellan versaler och gemener. |
m | Flera rader | Gör att ^ och $ matchar början och slutet av varje rad, inte bara början och slutet av hela texten. Den ändrar var matchningar hittas, men inte kontrollen av hela texten som beskrivs nedan. |
s | Punkt matchar allt | Gör att . även matchar radbrytningstecken. |
Flaggor kan kombineras, till exempel gi för global och skiftlägesokänslig eller gms för global, flera rader och punkt matchar allt tillsammans.
Så hittar verktyget matchningar
Matchningsfunktionen söker alltid efter varje förekomst av mönstret i texten. Därför fungerar räkningen av matchningar som om den globala flaggan vore aktiverad, även när den inte har valts i rullgardinsmenyn. Varje matchning registreras med sin position och längd. Därefter delas originaltexten upp i matchade och icke-matchade delar så att matchningarna kan markeras.
För att kontrollera om ett mönster matchar hela texten omsluter verktyget mönstret med en icke-fångande grupp och förankrar det: ^(?:pattern)$. Grupperingen är viktig eftersom | (alternation) binder lösare än förankringarna. Utan gruppen skulle ett mönster som cat|dog förankrat som ^cat|dog$ egentligen betyda ”börjar med cat eller slutar med dog”, vilket inte är samma sak som ”hela texten är cat eller dog”.
Den här kontrollen tar också bort flaggan för flera rader. När m är aktiverad matchar ^ och $ vid varje radbrytning, så det förankrade testet skulle besvara ”matchar någon enskild rad?” i stället för ”matchar hela texten?”. Verktyget tar bort m för denna kontroll och behåller i och s, eftersom de två ändrar vad mönstret matchar och inte var förankringarna sitter. Svaret avser därför alltid hela texten, inklusive radbrytningarna.
Räkneexempel
Mönster: \d+ (en eller flera siffror), flagga: g, testtext: Room 12 has 5 chairs.
- Hittade matchningar:
12och5, så antalet matchningar är 2. - Kontroll av hela texten: mönstret matchar inte hela texten, eftersom texten också innehåller bokstäver och mellanslag.
Om testtexten i stället ändras till 12345 matchar samma mönster hela strängen, så kontrollen av hela texten anger true.
Referens för regexsyntax
Teckenmatchning
| Symbol | Betydelse | Exempel | Matchar |
|---|---|---|---|
. | Alla tecken utom en radbrytning | a.c | ”abc”, ”adc”, ”a1c” |
\d | Valfri siffra, 0 till 9 | \d{3} | "123", "456" |
\D | Alla tecken som inte är siffror | \D+ | ”abc”, ”xyz” |
\w | Valfri bokstav, siffra eller understreck | \w+ | ”abc123”, ”test_123” |
\W | Alla tecken som inte är bokstäver, siffror eller understreck | \W+ | "!@#" |
\s | Valfritt blanktecken | a\sb | ”a b” |
\S | Alla tecken som inte är blanktecken | \S+ | ”abc” |
Positionsförankringar
| Symbol | Betydelse | Exempel | Matchar |
|---|---|---|---|
^ | Början av en rad | ^abc | ”abc” i början av en rad |
$ | Slutet av en rad | abc$ | ”abc” i slutet av en rad |
\b | En ordgräns | \bword\b | ”word” som ett helt ord |
Kvantifierare
| Symbol | Betydelse | Exempel | Matchar |
|---|---|---|---|
* | Noll eller fler av föregående element | a*b | ”b”, ”ab”, ”aab” |
+ | En eller fler av föregående element | a+b | ”ab”, ”aab” |
? | Noll eller en av föregående element | colou?r | ”color”, ”colour” |
{n} | Exakt n av föregående element | a{3} | ”aaa” |
{n,} | Minst n av föregående element | a{2,} | ”aa”, ”aaa” |
{n,m} | Mellan n och m av föregående element | a{2,4} | ”aa”, ”aaa”, ”aaaa” |
Teckenmängder och grupper
| Symbol | Betydelse | Exempel | Matchar |
|---|---|---|---|
[abc] | Ett valfritt tecken som anges inom hakparenteserna | [aeiou] | valfri enskild vokal |
[^abc] | Alla tecken som inte anges inom hakparenteserna | [^aeiou] | valfritt icke-vokaltecken |
(abc) | Grupperar tecken och fångar matchningen | (abc)+ | ”abc”, ”abcabc” |
| a\ | b | Matchar a eller b | cat\ |
Två andra funktioner är bra att känna till. En lookahead, skriven a(?=b), matchar ”a” endast när det följs av ”b”, utan att inkludera ”b” i matchningen. En lookbehind, skriven (?<=a)b, matchar ”b” endast när det kommer direkt efter ”a”.
Vanliga exempel på mönster
Dessa mönster kan klistras in i verktyget för att se hur de fungerar mot exempeltext.
Endast siffror: ^\d+$ matchar en sträng som enbart består av siffror, till exempel ”48210”, och avvisar allt som innehåller en bokstav eller ett mellanslag.
E-postadress (grundläggande kontroll): ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ matchar adresser i formen name@domain.tld, till exempel ”user@example.com”. Det är en enkel kontroll, inte det fullständiga e-postformatet enligt internetstandarderna, så vissa ovanliga men giltiga adresser kommer att underkännas.
Amerikanskt telefonnummer: ^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$ matchar format som ”(123) 456-7890”, ”123-456-7890” och ”1234567890”.
Datum i formatet YYYY-MM-DD: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ kontrollerar att månaden ligger mellan 01 och 12 och att dagen ligger mellan 01 och 31. Den kontrollerar inte om dagen är giltig för den specifika månaden, så den godkänner ”2024-02-30” trots att februari aldrig har 30 dagar.
Vanliga frågor och svar
Vad är ett reguljärt uttryck? Ett reguljärt uttryck är en teckensekvens som definierar ett sökmönster. Det används för att söka, matcha och redigera text i de flesta programmeringsspråk och textredigerare.
Vad gör den globala flaggan?
Utan den globala flaggan stannar en sökning normalt efter den första matchningen. Med den globala flaggan (g) fortsätter sökningen och rapporterar varje matchning i texten. Detta verktyg söker alltid efter alla matchningar när de räknas, oavsett vilken flagga som valts.
Hur matchar jag en bokstavlig punkt eller ett annat specialtecken?
Sätt ett omvänt snedstreck framför tecknet. Till exempel matchar \. en bokstavlig punkt i stället för ”vilket tecken som helst”, vilket är vad en oescapad . betyder.
Vad är skillnaden mellan .* och .*??
.* är girigt och matchar så många tecken som möjligt. .*? är lat och matchar så få tecken som möjligt, samtidigt som resten av mönstret fortfarande kan matcha.
Varför anger verktyget att texten inte matchar i sin helhet när varje rad matchar?
Kontrollen av hela texten behandlar texten som en enda sträng, inklusive radbrytningar. Ett mönster som \d+ matchar varje rad i 12 och 34 var för sig, men de två raderna och radbrytningen mellan dem består inte enbart av siffror, så svaret för hela texten är nej. För att matcha text som sträcker sig över flera rader måste mönstret även täcka radbrytningarna, till exempel med [\s\S]+.
Hur kontrollerar jag att en hel sträng matchar ett mönster, inte bara en del av den?
Lägg till ^ i början och $ i slutet av mönstret, till exempel ^[0-9]+$ för en sträng som endast innehåller siffror.
Matchar den här testaren regexreglerna i andra programmeringsspråk? Det här verktyget använder den reguljära uttrycksmotor som är inbyggd i JavaScript. Merparten av den grundläggande syntaxen, till exempel teckenklasser och kvantifierare, delas av språk som Python, Java och Perl, men vissa detaljer skiljer sig. Ett mönster som fungerar här garanteras därför inte fungera identiskt överallt.
Referenser
- "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.