Regex-tester
Test regex-mønstre med live matching, flagg og detaljer.
Hva er regulære uttrykk?
Regulære uttrykk (regex eller regexp) er mønstre som brukes til å matche tegnkombinasjoner i tekst. De er et av de kraftigste verktøyene i programmering for tekstsøk, validering, utvinning og transformasjon. Alle store programmeringsspråk støtter regulære uttrykk, og de er essensielle for oppgaver som skjemavalidering, loggparsing og datarensing.
Et regex-mønster beskriver et sett med strenger ved hjelp av spesiell syntaks. Enkle mønstre matcher bokstavelig tekst, mens metategn som . (et hvilket som helst tegn), * (null eller flere) og + (én eller flere) gir fleksibilitet. Gruppering med parenteser, alternering med | og tegnklasser med [] lar deg bygge presise matchingsregler for praktisk talt ethvert tekstmønster.
Slik bruker du regex-testeren
Skriv inn et regulært uttrykksmønster i mønsterfeltet, velg ønskede flagg (g, i, m, s), og lim inn tekst å teste mot. Verktøyet fremhever alle treff i sanntid og viser fangstgrupper for hvert treff. Bruk dette til å utvikle og feilsøke regex-mønstre før du bruker dem i koden din.
Vanlige regex-mønstre
- E-postadresser: ^[^\s@]+@[^\s@]+\.[^\s@]+$ — matcher standard e-postformater.
- URL-er: https?://\S+ — matcher URL-er som begynner med http eller https.
- IPv4-adresser: matcher det standard punktdesimale formatet som 192.168.1.1 med siffermønstre.
- Datoer: matcher datoer i YYYY-MM-DD-format med firesifret år og tosifret måned og dag.
- Ord med stor forbokstav: [A-Z][a-z]+ — matcher ord som begynner med stor bokstav.
Regex-flagg forklart
- g: g (Global): Finner alle treff i teksten, ikke bare det første.
- i: i (Uten hensyn til store/små bokstaver): Gjør at mønsteret matcher uavhengig av bokstavstørrelse.
- m: m (Flerlinjet): Gjør at ^ og $ matcher begynnelsen og slutten av hver linje, ikke bare hele strengen.
- s: s (Dotall): Gjør at metategnet . også matcher linjeskift.
Fangstgrupper
Parenteser () oppretter fangstgrupper som trekker ut spesifikke deler av et treff. Hver gruppe nummereres fra 1. For eksempel fanger mønsteret (\w+)@(\w+\.\w+) brukt på «user@example.com» opp «user» i gruppe 1 og «example.com» i gruppe 2. Navngitte grupper med (?<navn>...) gjør komplekse mønstre mer lesbare.
Vanlige regex-feil
Å glemme å escape spesialtegn er den vanligste feilen. Tegn som . + * ? ( ) [ ] ^ $ | og krøllparenteser har spesiell betydning i regex og må escapes med en omvendt skråstrek når du vil matche dem bokstavelig. For eksempel krever det å matche et punktum en omvendt skråstrek etterfulgt av punktum.
Å skrive for grådige mønstre er et annet vanlig problem. Mønsteret .* matcher så mye tekst som mulig, noe som kan fange langt mer enn tiltenkt. Bruk det late mønsteret .*? for å matche så lite som mulig, eller bruk mer spesifikke mønstre som [^>]* i stedet for .* når du analyserer strukturert tekst.
Ofte stilte spørsmål
Er regex-mønstre like i alle programmeringsspråk?
Kjernesyntaksen er lik, men det finnes forskjeller. JavaScript, Python, Java og .NET har hver litt ulike funksjoner og syntaks for avanserte konstruksjoner som lookbehind-påstander, navngitte grupper og Unicode-støtte. Dette verktøyet bruker JavaScript-regex, som er standarden for webutvikling.
Hvordan kan jeg lære regulære uttrykk?
Start med enkle mønstre og legg gradvis til kompleksitet. Lær de grunnleggende metategn (. * + ? ^ $), tegnklasser ([a-z], \d, \w) og kvantifikatorer først. Gå deretter videre til gruppering, alternering og lookaheads. Øv med virkelige oppgaver som å validere e-poster, parse loggfiler eller trekke ut data fra HTML.