Skip to content

Reguljära uttryck Lathund

Matcha tecken

[abc] Matchar något av tecknen a, b eller c
[^abc] Matchar inte tecknen a, b eller c. “^” är endast effektivt om det visas som det första tecknet
[a-g] Matchar valfritt tecken i intervallet a-g
[^a-g] Matchar inget tecken i intervallet a-g
[H-N] Matchar valfritt tecken i intervallet H-N
[0-9] Matchar valfritt tecken i intervallet 0-9
[a-gH-N] Matchar valfritt tecken i intervallen a-g eller H-N
Wildcards (Jokertecken):
. [^\n\r], matchar alla tecken utom radbrytning
\s whitespace: radbrytning, tabb, mellanslag etc.
\S [^\s] (Alla tecken som inte är whitespace)
\d siffra: [0-9]
\D [^\d] (Alla tecken som inte är siffror)
\w ordtecken: [0-9A-Za-z_]
\W [^\w] (Alla tecken som inte är ordtecken)

Matcha grupper

(a b)
(…) Fångstgrupp (Capture group)
(?:…) Icke-fångande grupp
(?<name>…) eller (?’name’…) Namngiven fångstgrupp, “name” kan anpassas
(?(condition)true_regex false_regex)

group(0) används för att hämta hela den matchade strängen, medan group(>0) kan hämta undergrupper från det totala resultatet.

Obs: Namngivna fångstgrupper stöds sedan Java 1.7 (genom att skicka strängen “name” som parameter till group-metoden). JS och Python stöder för närvarande inte namngivna fångstgrupper nativt.

Frekvensintervall (Kvantifikatorer)

{3} Föregående objekt visas exakt 3 gånger, motsvarar {3,3}
{3,6} Föregående objekt visas 3 till 6 gånger
{3,} Föregående objekt visas minst 3 gånger
{0,6} Föregående objekt visas högst 6 gånger
Wildcards:
* {0,} (Noll eller fler)
+ {1,} (En eller fler)
? {0,1} (Noll eller en)
\w* Girigt läge (Greedy)
\w*? Icke-girigt läge

Ankare (Positionsmarkörer)

^ Början av strängen
$ Slutet av strängen
\b Boundary, ordgräns
\B Ingen ordgräns
Lookaround-assertioner:
(?=exp) Positiv lookahead (suffix är exp)
(?<=exp) Positiv lookbehind (prefix är exp)
(?!exp) Negativ lookahead (inget suffix exp)
(?<!exp) Negativ lookbehind (inget prefix exp)

\b(\w+)\b är ekvivalent med (?<=\W?)(\w+)(?=\W?)