DevToys Web Pro iconDevToys Web ProBlogg
Vurder oss:
Prøv nettleserutvidelsen:

Tester for regulære uttrykk

Mønster

Teststreng

  • Treff

    Skriv inn et mønster for å se treff

    Erstatt

    Referanse

    Tegnklasser

    .Alle tegn unntatt linjeskift
    [abc]Match a, b eller c
    [^abc]Match alt unntatt a, b, c
    [a-z]Tegnområde (a til z)
    \dSiffer (0-9)
    \DIkke-siffer
    \wOrdtegn [a-zA-Z0-9_]
    \WIkke-ordtegn
    \sBlanktegn
    \SIkke-blanktegn

    Ankere

    ^Start på streng/linje
    $Slutt på streng/linje
    \bOrdgrense
    \BIkke-ordgrense

    Escape-tegn

    \tTabulator
    \nLinjeskift
    \rVognretur
    \0Nulltegn
    \xhhHeksadesimalt tegn (f.eks. \xFF)
    \uhhhhUnicode-tegn

    Grupper og referanser

    (abc)Fangende gruppe
    (?:abc)Ikke-fangende gruppe
    (?<name>abc)Navngitt fangende gruppe
    \1Tilbakereferanse til gruppe 1
    \k<name>Tilbakereferanse til navngitt gruppe

    Lookaround

    (?=abc)Positiv lookahead
    (?!abc)Negativ lookahead
    (?<=abc)Positiv lookbehind
    (?<!abc)Negativ lookbehind

    Kvantifikatorer og alternasjon

    a*0 eller flere (grådig)
    a+1 eller flere (grådig)
    a?0 eller 1 (valgfritt)
    a{n}Nøyaktig n ganger
    a{n,}n eller flere ganger
    a{n,m}Mellom n og m ganger
    a*?0 eller flere (lat)
    a+?1 eller flere (lat)
    a|bMatch a eller b

    Erstatning

    $1, $2Innholdet i den fangede gruppen
    $&Hele treffet
    $`Før treff
    $'Etter treff
    $$Bokstavelig $-tegn

    Flagg

    gAlle tegn unntatt linjeskift
    iAlle tegn unntatt linjeskift
    mAlle tegn unntatt linjeskift
    sAlle tegn unntatt linjeskift
    uAlle tegn unntatt linjeskift
    yAlle tegn unntatt linjeskift
    Tekniske detaljer

    Slik fungerer RegEx-testeren

    Hva verktøyet gjør

    Regex-testeren lar deg teste regulære uttrykk mot eksempeltekst i sanntid. Den fungerer både som en regex-feilsøker og en regex-validator, og hjelper utviklere med å bygge, teste og finjustere mønstermatchingsuttrykk. Denne testeren bruker JavaScript RegExp-motoren (ECMAScript), så syntaksen kan avvike fra PCRE, .NET eller Java-regex-motorer. Når du trenger å teste regex på nett, viser dette verktøyet alle treff, fangstgrupper og erstatninger. Verktøyet støtter JavaScript-regex-syntaks, inkludert JavaScript-regex-flagg (g, i, m, s, u): global (g), ikke-skilletegnsensitive (i), multiline (m), dotAll (s) og unicode (u). Det markerer treff i teststrengen, viser fangstgrupper og kan utføre finn-og-erstatt-operasjoner for å forhåndsvise hvordan en regex ville transformere tekst.

    Vanlige bruksområder for utviklere

    Utviklere bruker regex-testere når de bygger valideringsmønstre, parser loggfiler eller henter ut data fra strenger. Testing av regexp-mønstre hjelper med å identifisere kanttilfeller, feilsøke komplekse uttrykk og forstå hvordan ulike flagg påvirker matchingsatferd. Mange utviklere bruker regex-testere til å validere e-postadresser, telefonnumre, URL-er eller andre strukturerte dataformater. Verktøyet er verdifullt ved skjemavalidering, logganalyse eller tekstbehandlingsoppgaver. Regex-testere hjelper også når man lærer regulære uttrykk, siden de viser hvordan mønstre matcher tekst gjennom match-iterasjon og gruppeuthenting. Når du tester regexp med flerslinjet tekst eller spesialtegn, hjelper verktøyet utviklere med å se nøyaktig hva som matches og hvorfor.

    Dataformater, typer eller varianter

    Regex-testere håndterer JavaScript-syntaks for regulære uttrykk, som er basert på Perl-lignende regex med noen forskjeller fra andre regex-motorer. Verktøyet støtter tegnklasser som \dfor sifre, \wfor ordtegn og \sfor mellomrom/whitespace. Det håndterer ankere ( ^, $), kvantifikatorer (*, +, ?) og alternasjon (|). Multiline-flagget påvirker hvordan ^og $matcher, mens dotAll-flagget gjør at .matcher linjeskifttegn. Å forstå regex-atferd for linjeskift er avgjørende for behandling av flerslinjet tekst. For eksempel viser testing av et mønster som /\d-\d-\d/ mot en telefonnummerstreng nøyaktig hvilke deler som matcher. Håndtering av linjeskift i regex avhenger av flagg: mønsteret ^foo.*bar$ matcher "foo\nbar" bare med dotAll-flagget (s), siden .ikke matcher linjeskift som standard. Når du jobber med regex-mønstre for linjeskift, bruk \n for å matche bokstavelige linjeskift, eller \r\n for Windows-linjeavslutninger.

    Vanlige fallgruver og kanttilfeller

    En vanlig feil er å glemme at JavaScript-regex bruker skråstreker som skilletegn, ikke anførselstegn. Et annet problem er å misforstå hvordan global-flagget påvirker matching: uten det returneres bare første treff, men med det finnes alle treff. Håndtering av linjeskift i regex kan være vanskelig: tegnet . matcher ikke linjeskift som standard med mindre dotAll-flagget brukes. Negasjon av tegnklasse med [^...] kan være forvirrende, siden det matcher ethvert tegn som ikke er i klassen. Grådige vs late kvantifikatorer ( *vs *?) oppfører seg forskjellig og kan gi uventede resultater. Lookahead- og lookbehind-assertions ( (?=...), (?&lt;=...)) er kraftige, men kan være vanskelige å feilsøke. Utviklere bør teste regex-mønstre med ulike inndata, inkludert kanttilfeller som tomme strenger, spesialtegn og unicode-tegn.

    Når du bør bruke dette verktøyet vs. kode

    Bruk denne regex-testeren for rask mønsterutvikling, feilsøking av komplekse uttrykk eller for å lære syntaks for regulære uttrykk. Den er ideell for å teste regex-mønstre før du implementerer dem i kode, spesielt når du jobber med ukjent syntaks eller komplekse mønstre. Den visuelle tilbakemeldingen hjelper med å identifisere hvorfor et mønster matcher eller ikke matcher bestemt tekst. For produksjonskode bør du bruke regex-testere integrert i IDE-er eller enhetstest-rammeverk som kan validere mønstre som en del av testpakken din. Nettleserverktøy er best til interaktiv utvikling og læring, mens kodebaserte løsninger gir automatisering, integrasjon med CI/CD-pipelines og muligheten til å teste mønstre mot store datasett. For komplekse applikasjoner sikrer automatisert regex-testing at mønstre fungerer korrekt på tvers av ulike inndata og kanttilfeller.