Regex Testare
Testa och felsök reguljära uttryck direkt i din webbläsare. Markera matchningar, visa inspelningsgrupper och använd ersättningsläge – gratis och privat.
Testa och felsök reguljära uttryck direkt i din webbläsare. Markera matchningar, visa inspelningsgrupper och använd ersättningsläge – gratis och privat.
Reguljära uttryck är ett domänspecifikt språk för att matcha mönster i text. De har varit en del av datoranvändning sedan 1968 och är nu inbyggda i alla moderna programmeringsspråk, textredigerare och kommandoradssökverktyg. Syntaxen är kortfattad men felbenägen: små ändringar ger subtilt olika matchningsbeteende och komplexa uttryck blir snabbt oläsliga. En testare som visar matchningar i realtid när du redigerar mönstret är det mest effektiva sättet att utveckla och verifiera regex.
Den här testaren körs i din webbläsare med JavaScript-regex-motorn (samma som din applikation använder om den körs i en webbläsare). Mönster och testtext uppdateras reaktivt: varje ändring av någon av dem gör om matchen. Matchningsgrupper markeras, fångade grupper listas och flaggor (skiftlägeskänsliga, flerradiga, globala) exponeras för testning.
Regex-syntaxen varierar subtilt mellan motorerna. JavaScript följer ECMAScript-specifikationen; Python, PCRE (används av PHP och många andra), Java och Go har var och en sina egna dialekter med överlappande men inte identiska funktioner. Mönster som utvecklas här använder ECMAScript-syntax; crossmotor portabilitet kräver att varje måls dokumentation kontrolleras.
Regex-buggar är notoriskt svåra att felsöka efter implementering. Ett mönster som ser rimligt ut kan matcha mer eller mindre än vad som är avsett, misslyckas på kantfodral eller ha katastrofal backtracking på vissa ingångar. Att testa mönster interaktivt mot representativ input fångar upp problem före kodgranskning och produktion.
Mönster drar också nytta av dokumentation. Att visa ett regex vid sidan av indata som det ska matcha och indata som det inte ska matcha gör avsikt explicit. Framtida underhållare (inklusive dig själv om sex månader) uppskattar dokumenterade testfall mer än de uppskattar smarta one-liners.
Skriv ett mönster, skriv testinmatning, se matcher markerade live.
JavaScript-regex följer ECMAScript-specifikationen. Huvudfunktioner: teckenklasser ([abc], [^abc]), kvantifierare (*, +, ?, {n,m}), alternering (|), gruppering ((...)), infångande och icke-fångande grupper, lookahead och lookbehind (moderna motorer), bakåtreferenser, namngivna grupper, Unicode-egenskapen escapes (med u-flagga) och standardsekvenserna som escape.
Viktiga skillnader från PCRE och Python: lookbehind-stödet är nyligen i JavaScript (2018+); namngivna grupper använder (?<namn>...) syntax; vissa Unicode-escapes kräver att u-flaggan fungerar korrekt. Mönster avsedda för användning på flera språk bör kontrolleras mot varje måls dokumentation.
Prestanda: backtracking-baserade regex-motorer (de flesta inklusive JavaScript) kan ha katastrofal backtracking på vissa patologiska mönster. Tester som hänger testaren är ett tecken på att mönstret behöver förenklas - vanligtvis genom att undvika kapslade kvantifierare och tvetydig alternering.