D· AI-utvecklareprogrammering· ca 45 min· grundläggande — ändras sällan· verifierad 2026-09-20
Reguljära uttryck
Kunna matcha och extrahera mönster ur text med regex.
Förkunskaper
Intuition
| Mönster | Betyder | Matchar |
|---|---|---|
\d | siffra | 7 |
\w | bokstav, siffra eller _ | a, 3, _ |
\s | blanktecken | mellanslag, tab |
. | vilket tecken som helst | x |
+ | en eller flera | \d+ → 2026 |
* | noll eller flera | |
? | noll eller en | |
{2,4} | mellan 2 och 4 | |
[abc] | något av a, b, c | |
^ $ | början / slut på raden | |
(...) | grupp som kan hämtas ut |
\d{4}-\d{2}-\d{2} matchar ett datum som 2026-09-20.
Kod
import re
logg = "2026-09-20 13:05 ERROR anvandare=42 meddelande=timeout efter 30s"
m = re.search(r"(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}) (\w+) anvandare=(\d+)", logg)
print(m.group(1), m.group(3), m.group(4)) # 2026-09-20 ERROR 42
# namngivna grupper är läsbarare
m = re.search(r"(?P<datum>\d{4}-\d{2}-\d{2}).*anvandare=(?P<uid>\d+)", logg)
print(m.group("uid")) # 42
print(re.findall(r"\d+", logg)) # ['2026','09','20','13','05','42','30']
print(re.sub(r"anvandare=\d+", "anvandare=***", logg)) # maskera id
# rådsträngar: använd alltid r"..." så att \d inte tolkas av Python
När regex är fel verktyg: HTML och JSON (använd en parser — nästlade strukturer går inte att matcha med regex), och mönster som blir längre än en rad. Ett regex du inte kan läsa om en månad är en bugg som väntar.
Behärskning innebär
- Skriver mönster med teckenklasser, kvantifierare och grupper
- Extraherar delar ur text med grupper
- Vet när regex är fel verktyg
Logga in för att göra övningarna och bygga upp din behärskning.