Regex-lathund
Välj en regex-variant
Börja med motorn du använder. Referensen döljer syntax som inte gäller för det valet.
Använd denna interaktiva referens för att jämföra vanlig syntax för reguljära uttryck innan du klistrar in den i kod. Välj JavaScript, PCRE2/PHP, Python re, .NET eller en vy med alla motorer; välj sedan ett ämne och sök bland de poster som visas. Referensen markerar syntax som är specifik för en familj, eftersom en token som kompilerar i en motor kan avvisas eller betyda något annat i en annan. Sökning och kopiering sker i din webbläsare, och sidan kör inte mönster mot din text.
Så använder du regex-lathunden
-
1
Välj en motor
Börja med JavaScript, PCRE2/PHP, Python re, .NET eller jämför alla fyra. Den fokuserade vyn utelämnar poster som inte gäller den valda motorn.
-
2
Välj ett ämne
Öppna ankare, teckenklasser, kvantifierare, grupper, lookarounds, vanliga mönsterformer eller flaggor och alternativ.
-
3
Sök och kopiera lokalt
Sök efter token och beskrivningar direkt på sidan och markera sedan en token för att kopiera den. Söktexten skickas inte till servern och läggs inte till i URL:en.
-
4
Verifiera i den faktiska körmiljön
Använd den passande motorn, flaggorna och API:t i ditt projekt för att kompilera och testa det slutliga uttrycket. Referensen förklarar syntax; den validerar inte produktionsdata.
Kompatibilitet spelar roll
Reguljära uttryck är inte ett enda universellt språk. Snabbreferensen skiljer syntax som ser likartad ut men inte fungerar friktionsfritt mellan olika motorer.
| Funktion | JavaScript RegExp | PCRE2 / PHP | Python re |
.NET |
|---|---|---|---|---|
| Absolut början | Ingen \A |
\A |
\A |
\A |
| Absolut slut | Ingen \z |
\z |
\Z |
\z |
Unicode-egenskap \p{L} |
Använd läget u eller v |
Stöds | Inte i inbyggda re |
Stöds |
| Namngiven fångst | (?<name>...) |
(?<name>...) eller (?P<name>...) |
(?P<name>...) |
(?<name>...) |
| Namngiven bakåtreferens | \k<name> |
\k<name> eller (?P=name) |
(?P=name) |
\k<name> |
| Global matchning | Flaggan g plus ett matchnings-API |
API för upprepade matchningar, till exempel preg_match_all |
API för upprepade matchningar, till exempel finditer |
API för upprepade matchningar, till exempel Matches |
\d och \w kräver särskild omsorg. I JavaScript är \d fortfarande ASCII-siffrorna 0-9, och \w består i praktiken av ASCII-ordtecken även när du lägger till u. Andra motorer kan använda Unicode-medvetna regler beroende på läge och konfiguration. Om Unicode-beteendet är viktigt ska du skriva och testa exakt den egenskap eller teckenklass du behöver.
Ankare och gränser
| Token | Vad det uttrycker | Kommentar om portabilitet |
|---|---|---|
^ |
Början av indata, eller av en rad i flerradigt läge | Finns i alla fyra familjer. |
$ |
Slutet av indata, eller av en rad i flerradigt läge | Finns i alla fyra familjer; detaljer kring en avslutande radbrytning skiljer sig. |
\b |
Ordgräns | Vad som räknas som ett ordtecken beror på motor och läge. |
\A |
Absolut början av subjektet | PCRE2, Python och .NET; inte JavaScript. |
\z |
Absolut slut på subjektet | PCRE2 och .NET; Python använder \Z. |
\Z |
Slut på Python-subjektet | PCRE2 och .NET kan också matcha före en avslutande radbrytning; använd där \z för absolut slut. |
Grupper och lookarounds
| Token | Betydelse | Viktig begränsning |
|---|---|---|
(abc) |
Fångande grupp | Finns i alla fyra familjer. |
(?:abc) |
Icke-fångande grupp | Finns i alla fyra familjer. |
(?<name>abc) |
Namngiven grupp | Syntax för JavaScript, PCRE2 och .NET. |
(?P<name>abc) |
Namngiven grupp | Syntax för Python; PCRE2 accepterar den också. |
(?=abc) / (?!abc) |
Positiv / negativ lookahead | Finns i alla fyra familjer. |
(?<=abc) / (?<!abc) |
Positiv / negativ lookbehind | Alla fyra stöder detta, men tillåtna lookbehind-längder skiljer sig. |
Lookbehind är en vanlig portabilitetsfälla. Python re kräver en lookbehind med fast bredd. Stödet i JavaScript beror på vilken körmiljö du distribuerar. Testa det exakta mönstret i den äldsta körmiljö du stöder i stället för att enbart förlita dig på en rad i en lathund.
Mönsterformer, inte fullständiga validerare
Posterna med vanliga mönster beskriver medvetet former. Exempelvis accepterar ^\d{4}-\d{2}-\d{2}$ även 2026-99-99, och ett enkelt mönster i e-postform kan inte implementera hela standarden för e-postadresser. Tolka datum, URL:er och strukturerade identifierare med rätt bibliotek efter en första formatkontroll.
| Form | Exempelmönster | Vad det inte bevisar |
|---|---|---|
| Decimal med tecken | ^-?\d+(?:\.\d+)?$ |
Lokala decimaltecken, gruppering, numeriskt intervall eller precision. |
| Text i e-postform | ^[\w.+-]+@[\w-]+\.[\w.-]+$ |
En levererbar eller fullständigt standardenlig e-postadress. |
| Text i HTTP(S)-URL-form | ^https?://\S+$ |
En säker, tolkningsbar eller nåbar URL. |
| ISO-datumform | ^\d{4}-\d{2}-\d{2}$ |
Ett verkligt kalenderdatum. |
| ASCII-tecken för slugs | ^[A-Za-z0-9_-]+$ |
Reglerna i din applikation för versaler, avgränsare eller reserverade ord. |
Flaggor och alternativ
Kopiera inte en flagga utan att först kontrollera värd-API:t. JavaScript skriver /pattern/g, medan Python skickar re.I eller re.X, .NET kan använda RegexOptions och PCRE2/PHP vanligen använder avgränsare och efterföljande modifierare. g är en JavaScript-flagga för global matchning, inte en PCRE2-modifierare; upprepad matchning i PCRE2 styrs normalt av PHP-API:t. Utökat läge (x) finns i PCRE2, Python och .NET, men inte som JavaScript-flagga.
Vanliga frågor
Nej. Det är en syntaxreferens med sök- och kopieringskontroller som körs lokalt i webbläsaren. Använd en regex-testare och den körmiljö som din applikation använder för att kompilera mönster och testa representativa indata.
Vissa välbekanta token är inte portabla. Python inbyggda re använder till exempel (?P<name>…) för namngivna grupper, JavaScript använder (?<name>…), och JavaScript stöder inte de absoluta ankarna \A eller \z.
Nej. I JavaScript är \d ASCII-siffror och \w i praktiken ASCII-ordtecken, även med flaggan u. Andra motorer har andra Unicode-lägen och alternativ, så testa det beteende som dina data kräver.
Se dem bara som snabba formkontroller. De bevisar inte att en e-postadress är levererbar, att en URL är säker eller nåbar eller att ett datum finns i kalendern. Använd en specialbyggd parser eller validerare för produktionsregler.
Relaterade verktyg
ASCII-tabellreferens
Full ASCII-tabell från 0 till 127 med decimal-, hex-, oktal- och binärvärden samt notation för numeriska HTML-referenser, inklusive NUL, LF och DEL.
HTML-teckenreferens
En sökbar lista över HTML-entiteter med deras namngivna och numeriska koder samt kopiering med ett klick för specialtecken och symboler.
Referens för kortkommandon
Sök dokumenterade standardkommandon för VS Code, Chrome och Bash med GNU Readline i macOS, Windows och Linux.
Färgpalettgenerator
Skapa monokromatiska, analoga, komplementära, triadiska eller tetradiska färgpaletter från en HEX-basfärg och exportera kopieringsklara CSS-variabler.
Slumpgenerator för bokstäver
Generera slumpade A-Z-bokstäver. Välj antal, versaler, gemener eller blandat läge och använd resultatet för spel, uppgifter eller klassrumsaktiviteter.
Slumpmässig färggenerator
Generera 1 till 50 slumpmässiga HEX-färger med färgrutor som du kan förhandsvisa, kopiera och använda i CSS, tester eller palettskissning.