Regex-lathund

Steg 1 / 3 33%

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. 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. 2

    Välj ett ämne

    Öppna ankare, teckenklasser, kvantifierare, grupper, lookarounds, vanliga mönsterformer eller flaggor och alternativ.

  3. 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. 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