Regex Tester
Test og fejlretning af regulære udtryk med det samme i din browser. Fremhæv kampe, se optagelsesgrupper, og brug erstatningstilstand - gratis og privat.
Test og fejlretning af regulære udtryk med det samme i din browser. Fremhæv kampe, se optagelsesgrupper, og brug erstatningstilstand - gratis og privat.
Regulære udtryk er et domænespecifikt sprog til at matche mønstre i tekst. De har været en del af computing siden 1968 og er nu indbygget i alle moderne programmeringssprog, teksteditorer og kommandolinjesøgeværktøjer. Syntaksen er kortfattet, men fejltilbøjelig: Små ændringer producerer subtilt anderledes matchadfærd, og komplekse udtryk bliver hurtigt ulæselige. En tester, der viser kampe i realtid, mens du redigerer mønsteret, er den mest effektive måde at udvikle og verificere regex.
Denne tester kører i din browser ved hjælp af JavaScript-regex-motoren (den samme som din applikation bruger, hvis den kører i en browser). Mønstre og testtekst opdateres reaktivt: hver ændring af enten genkører kampen. Matchgrupper fremhæves, indfangede grupper er listet, og flag (der skelnes mellem store og små bogstaver, multiline, globale) eksponeres til test.
Regex-syntaks varierer subtilt mellem motorer. JavaScript følger ECMAScript-specifikationen; Python, PCRE (brugt af PHP og mange andre), Java og Go har hver deres egne dialekter med overlappende, men ikke identiske funktioner. Mønstre udviklet her bruger ECMAScript-syntaks; cross-engine portabilitet kræver kontrol af hvert måls dokumentation.
Regex-fejl er notorisk svære at fejlfinde efter implementering. Et mønster, der ser fornuftigt ud, kan matche mere eller mindre end tilsigtet, fejle på kantsager eller have katastrofal backtracking på visse input. Test af mønstre interaktivt mod repræsentativt input fanger problemer før kodegennemgang og produktion.
Mønstre har også gavn af dokumentation. Visning af et regex ved siden af det input, det skal matche, og det input, det ikke skal matche, gør hensigten eksplicit. Fremtidige vedligeholdere (inklusive dig selv om seks måneder) sætter mere pris på dokumenterede testcases, end de sætter pris på smarte one-liners.
Indtast et mønster, skriv testinput, se kampe fremhævet live.
JavaScript regex følger ECMAScript-specifikationen. Vigtigste funktioner: tegnklasser ([abc], [^abc]), kvantificerere (*, +, ?, {n,m}), alternering (|), gruppering ((...)), indfangende og ikke-fangende grupper, lookahead og lookbehind (moderne motorer), tilbagereferencer, navngivne grupper, Unicode-egenskabsudslip (med u-flag) og standardsekvenserne.
Vigtige forskelle fra PCRE og Python: lookbehind-understøttelse er ny i JavaScript (2018+); navngivne grupper bruger (?<navn>...) syntaks; nogle Unicode-escapes kræver, at u-flaget fungerer korrekt. Mønstre beregnet til brug på tværs af sprog bør kontrolleres i forhold til hvert måls dokumentation.
Ydeevne: backtracking-baserede regex-motorer (de fleste inklusive JavaScript) kan have katastrofal backtracking på visse patologiske mønstre. Tests, der hænger testeren op, er et tegn på, at mønsteret trænger til forenkling - typisk ved at undgå indlejrede kvantifiers og tvetydig vekslen.