Snabbreferens för regex-grunder
Ett reguljärt uttryck (regex) är ett mönster som matchar text. Varje symbol, kallad token, ändrar mönstrets beteende. Bladet nedan listar de vanligaste tokenen med ett enkelt språk och ett litet exempel att kopiera och testa.
| Token | Betydelse | Exempel |
|---|---|---|
| . | Matches any single character except newline. | a.c matches abc, a c |
| * | Matches the preceding token zero or more times. | ab* matches a, abb |
| + | Matches the preceding token one or more times. | ab+ matches ab, abb |
| ? | Makes the preceding token optional (zero or one). | colou?r matches color, colour |
| [] | Character set: matches any one character inside. | [aeiou] matches any vowel |
| [^] | Negated set: matches any character NOT inside. | [^0-9] matches any non-digit |
| \d | Matches any digit (0-9). | \d+ matches 42, 007 |
| \w | Matches any word character (a-z, A-Z, 0-9, _). | \w+ matches hello_1 |
| \s | Matches any whitespace (space, tab, newline). | a\sb matches a b |
| ^ | Anchors the match to the start of a line/string. | ^Hello matches start of string |
| $ | Anchors the match to the end of a line/string. | world$ matches end of string |
| | | Alternation: matches the pattern on either side. | cat|dog matches cat or dog |
| () | Groups a sub-pattern (and captures it). | (ab)+ matches ab, abab |
| {n,m} | Quantifier: match the preceding token n to m times. | a{2,4} matches aa, aaaa |
| (?i) | Inline flag: makes the pattern case-insensitive. | (?i)hello matches HELLO |
Anteckningar
- De flesta token förlorar sin speciella betydelse inuti en teckenklass [ ]. Till exempel matchar . i [] bara en bokstavlig punkt.
- Omvänt snedstreck (\) är escape-tecknet: gör ett specialtecken till ett bokstavligt och tvärtom.
- Motorer skiljer sig: Python, JavaScript, PCRE och Golang delar de flesta tokenen, men flaggor och look-around varierar.
Vanliga frågor
- Vad matchar punkten (.) ?
- Som standard matchar punkten alla tecken utom nyrad. För att matcha en bokstavlig punkt måste du escape:a den som \.
- Vad är skillnaden mellan * och + ?
- Asterisken * matchar föregående token noll eller fler gånger, så 'ab*' matchar även 'a'. Pluset + kräver minst en gång, matchar 'ab' men inte bara 'a'.
- Hur matchar jag en siffra eller ett ordtecken?
- Använd \d för en siffra (0-9) och \w för ett ordtecken (bokstäver, siffror, understreck). Negeringarna är \D och \W.
- Vad används ^ och $ till?
- ^ förankrar matchen till början av strängen eller raden; $ till slutet. Tillsammans tvingar ^mönster$ hela strängen att matcha.