Python-regulære uttrykk på en enkel måte

Regulære uttrykk (regex) er kraftige verktøy som brukes for å matche og manipulere strenger basert på mønstre. I Python gir re-modulen støtte for regulære uttrykk, slik at du kan utføre komplekse strengoperasjoner effektivt. Denne artikkelen vil introdusere deg til det grunnleggende om regulære uttrykk og vise deg hvordan du bruker dem effektivt i Python.

Komme i gang med re-modulen

For å bruke regulære uttrykk i Python, må du importere re-modulen. Denne modulen gir flere funksjoner for å arbeide med regex-mønstre:

  • re.match() - Sjekker for samsvar kun i begynnelsen av strengen.
  • re.search() – Søker i hele strengen etter et samsvar.
  • re.findall() – Finner alle treff i strengen og returnerer dem som en liste.
  • re.sub() - Erstatter treff i strengen med en spesifisert erstatning.

Grunnleggende mønstertilpasning

Vanlige uttrykk bruker spesialtegn for å definere søkemønstre. Her er noen grunnleggende mønstre:

  • . - Matcher ethvert enkelt tegn unntatt nylinje.
  • \d – Matcher et hvilket som helst siffer (tilsvarer [0-9]).
  • \w – Matcher ethvert alfanumerisk tegn (tilsvarer [a-zA-Z0-9_]).
  • \s ​​– Matcher ethvert mellomromstegn.
  • ^ – Tilsvarer starten på strengen.
  • $ – Tilsvarer slutten av strengen.

Eksempler

Her er noen eksempler som viser grunnleggende mønstertilpasning:

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

Bruke regulære uttrykk med grupper

Grupper brukes til å fange opp deler av den samsvarende teksten. De er definert ved hjelp av parenteser. For å trekke ut bestemte deler av et mønster kan du for eksempel bruke 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

Bruke spesialtegn

Vanlige uttrykk inkluderer flere spesialtegn for mer kompleks mønstertilpasning:

  • * – Matcher 0 eller flere forekomster av det foregående elementet.
  • + – Matcher 1 eller flere forekomster av det foregående elementet.
  • ? – Tilsvarer 0 eller 1 forekomst av det foregående elementet.
  • {n} – Matcher nøyaktig n forekomster av det foregående elementet.
  • | - Matcher enten mønsteret før eller mønsteret etter det.

Eksempler

Her er noen eksempler på bruk av spesialtegn:

# 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']

Erstatte tekst med regulære uttrykk

re.sub()-funksjonen brukes til å erstatte deler av strengen som samsvarer med 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.

Konklusjon

Regulære uttrykk er et kraftig verktøy for mønstertilpasning og tekstmanipulering i Python. Med re-modulen kan du søke, matche og erstatte tekst basert på komplekse mønstre. Ved å forstå den grunnleggende syntaksen og spesialtegnene kan du utnytte regulære uttrykk for å håndtere et bredt spekter av tekstbehandlingsoppgaver effektivt.