🌐 NO

🔣 Regex-tester

Test regulære uttrykk i sanntid og se treffresultatene. Gir innstillinger for flagg, gruppefangst og et bibliotek med vanlige mønstre.

Vanlige mønstre

GUIDE

Les mer

01

1. Grunnleggende om regulære uttrykk

Regulære uttrykk (Regex) er kraftige verktøy for å definere, søke, hente ut og erstatte tekstmønstre. Match bokstavelig (\d for sifre, \w for ordtegn), eller bruk spesialtegn for mer komplekse mønstre. Eksempel: ^[a-z]+$ betyr strenger som bare inneholder små bokstaver. ^ er start, $ er slutt, [a-z] er a til z, + betyr én eller flere. Støttes i nesten alle programmeringsspråk og teksteditorer, og er viktig for validering av inndata, dataparsering og tekstutskifting.

02

2. Samling av vanlige mønstre

Regelmessig brukte regex-mønstre i praksis: E-post: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$, Telefon (US): ^(\+1)?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$, URL: ^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b, Dato (YYYY-MM-DD): ^\d{4}-\d{2}-\d{2}$, Passord (min. 8 tegn, stor+liten+siffer+spesial): ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$. Bruk disse mønstrene som utgangspunkt, og tilpass dem til prosjektet ditt.

03

3. Forklaring av regex-flagg

Regex-flagg styrer søkeoppførselen. g(global): finner alle treff, ikke bare det første. i(ignoreCase): skiller ikke mellom store og små bokstaver (/hello/i matcher Hello, HELLO). m(multiline): ^ og $ matcher start/slutt på hver linje. s(dotAll): . matcher linjeskifttegn (\n). u(unicode): håndterer hele Unicode riktig (emojier osv.). y(sticky): starter søket bare ved posisjonen til lastIndex. Eksempel: /hello/gi finner alle hello uavhengig av store og små bokstaver.

04

4. Fangstgrupper og tilbakehenvisninger

Parenteser () oppretter grupper som fanger matchede deler for senere bruk. Eksempel: /(\d{4})-(\d{2})-(\d{2})/ der $1 er år, $2 er måned, $3 er dag. Resultat-arrayet fra JavaScript match() inkluderer fangstgrupper. Tilbakehenvisninger \1, \2 matcher samme tekst som tidligere grupper. Eksempel: /(\w+)\s+\1/ matcher "hello hello". Ikke-fangende grupper (?:) grupperer uten å fange, og gir bedre ytelse.

05

5. Lookahead og lookbehind

Lookahead og lookbehind sjekker mønstre før/etter uten å ta dem med i treffet. Positiv lookahead (?=): /\d(?=px)/ matcher sifre før px ("100" i "100px"). Negativ lookahead (?!): /\d(?!px)/ matcher sifre som ikke står før px. Positiv lookbehind (?<=): /(?<=\$)\d+/ matcher sifre etter $ ("100" i "$100"). Negativ lookbehind (?<!): det motsatte. Brukes ofte i passordvalidering for å sjekke at bestemte tegn er inkludert.

06

6. Ytelsesoptimalisering for regex

Komplekse regex-uttrykk kan gi ytelsesproblemer. Vær så spesifikk som mulig ([a-z]+ i stedet for .*). Erstatt unødvendige fangstgrupper med ikke-fangende grupper (?:). Bruk late kvantifikatorer (*?, +?) i stedet for greedy (*,+) for å redusere tilbakekobling. For store tekster kan strengmetoder (indexOf, startsWith) være raskere enn regex. Forhåndskompiler regex for gjenbruk (ikke opprett nye RegExp igjen og igjen). Vær oppmerksom på ReDoS-angrep (Regular Expression Denial of Service) - bruk aldri brukerinput direkte som regex-mønstre.

Vanlige sporsmal

Kan jeg kombinere flere regex-flagg?
Ja, du kan slå på flere flagg samtidig - for eksempel finner g og i sammen alle treff mens de ignorerer store og små bokstaver. Bare huk av alternativene du trenger, så bruker verktøyet dem sammen.
Kan jeg bruke de innebygde vanlige mønstrene direkte?
Mønstre som e-post, telefon, URL og dato fungerer rett ut av boksen for de fleste tilfeller, men det er best å tilpasse dem til prosjektets spesifikke behov (for eksempel landsspesifikke telefonformater).
Hva bør jeg sjekke når det ikke finnes noen treff?
Sjekk først for skrivefeil i mønsteret, manglende escape-tegn (\. i stedet for .), og flagginnstillingene. "Ingen treff funnet" betyr at regex-en er gyldig, men ikke matcher teststrengen din.
Hvordan vises fangstgrupper i resultatene?
Dette verktøyet viser ikke verdiene i fangede grupper separat. I stedet utheves hvert treff i teststrengen, og du ser totalt antall treff. Du kan fortsatt skrive fangstgrupper i mønsteret ditt, men for å sjekke hva $1, $2 osv. faktisk fanget, må du inspisere det selv (for eksempel via nettleserkonsollen).
Hvorfor går komplekse regex-mønstre sakte?
Dette skyldes ofte grådige kvantifikatorer eller nestede grupper som utløser mye tilbakekobling. Mer spesifikke mønstre og late kvantifikatorer (*?, +?) hjelper som regel.