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øjagtigt n 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.