raatools/

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.