Python regulære udtryk gjort nemt
Regulære udtryk (regex) er kraftfulde værktøjer, der bruges til at matche og manipulere strenge baseret på mønstre. I Python giver re
-modulet understøttelse af regulære udtryk, så du kan udføre komplekse strengoperationer effektivt. Denne artikel vil introducere dig til det grundlæggende i regulære udtryk og vise dig, hvordan du bruger dem effektivt i Python.
Kom godt i gang med re
-modulet
For at bruge regulære udtryk i Python skal du importere re
modulet. Dette modul indeholder flere funktioner til at arbejde med regex-mønstre:
re.match()
- Kontrollerer kun for et match i begyndelsen af strengen.re.search()
- Søger i hele strengen efter et match.re.findall()
- Finder alle matches i strengen og returnerer dem som en liste.re.sub()
- Erstatter match i strengen med en specificeret erstatning.
Grundlæggende mønstermatchning
Regulære udtryk bruger specialtegn til at definere søgemønstre. Her er nogle grundlæggende mønstre:
.
- Matcher ethvert enkelt tegn undtagen newline.\d
- Matcher ethvert ciffer (svarende til[0-9]
).\w
- Matcher ethvert alfanumerisk tegn (svarende til[a-zA-Z0-9_]
).\s
- Matcher ethvert mellemrumstegn.^
- Matcher begyndelsen af strengen.$
- Matcher slutningen af strengen.
Eksempler
Her er nogle eksempler, der viser grundlæggende mønstermatchning:
import re
# Match a pattern at the beginning of a string
result = re.match(r'Hello', 'Hello, World!')
print(result.group()) # Output: Hello
# Search for a pattern in the entire string
result = re.search(r'\d+', 'There are 24 hours in a day.')
print(result.group()) # Output: 24
Brug af regulære udtryk med grupper
Grupper bruges til at fange dele af den matchede tekst. De er defineret ved hjælp af parenteser. For at udtrække bestemte dele af et mønster kan du f.eks. bruge grupper:
pattern = r'(\d{3})-(\d{2})-(\d{4})'
text = 'My number is 123-45-6789.'
# Find all matches with groups
match = re.search(pattern, text)
if match:
print(f'Area Code: {match.group(1)}') # Output: 123
print(f'Prefix: {match.group(2)}') # Output: 45
print(f'Suffix: {match.group(3)}') # Output: 6789
Brug af specialtegn
Regulære udtryk inkluderer flere specialtegn til mere kompleks mønstermatchning:
*
- Matcher 0 eller flere forekomster af det foregående element.+
- Matcher 1 eller flere forekomster af det foregående element.?
- Matcher 0 eller 1 forekomst af det foregående element.{n}
- Matcher nøjagtigtn
forekomster af det foregående element.|
- Matcher enten mønsteret før eller mønsteret efter det.
Eksempler
Her er nogle eksempler på brug af specialtegn:
# Match a pattern with 0 or more occurrences
result = re.findall(r'\d*', '123 abc 456')
print(result) # Output: ['123', '', '', '456']
# Match a pattern with 1 or more occurrences
result = re.findall(r'\d+', 'There are 24 apples and 3 oranges.')
print(result) # Output: ['24', '3']
Udskiftning af tekst med regulære udtryk
Funktionen re.sub()
bruges til at erstatte dele af strengen, der matcher et mønster:
text = 'The rain in Spain falls mainly in the plain.'
# Replace 'Spain' with 'France'
new_text = re.sub(r'Spain', 'France', text)
print(new_text) # Output: The rain in France falls mainly in the plain.
Konklusion
Regulære udtryk er et kraftfuldt værktøj til mønstermatchning og tekstmanipulation i Python. Med re
-modulet kan du søge, matche og erstatte tekst baseret på komplekse mønstre. Ved at forstå den grundlæggende syntaks og specialtegn kan du udnytte regulære udtryk til at håndtere en lang række tekstbehandlingsopgaver effektivt.