Python reguliere expressies eenvoudig gemaakt

Reguliere expressies (regex) zijn krachtige tools die worden gebruikt voor het matchen en manipuleren van strings op basis van patronen. In Python biedt de re-module ondersteuning voor reguliere expressies, zodat u complexe stringbewerkingen efficiënt kunt uitvoeren. Dit artikel introduceert u in de basisprincipes van reguliere expressies en laat u zien hoe u ze effectief kunt gebruiken in Python.

Aan de slag met de re-module

Om reguliere expressies in Python te gebruiken, moet u de module re importeren. Deze module biedt verschillende functies voor het werken met regex-patronen:

  • re.match() - Controleert alleen op een overeenkomst aan het begin van de tekenreeks.
  • re.search() - Doorzoekt de volledige string naar een overeenkomst.
  • re.findall() - Vindt alle overeenkomsten in de string en retourneert ze als een lijst.
  • re.sub() - Vervangt overeenkomsten in de tekenreeks door een opgegeven vervanging.

Basispatroonmatching

Reguliere expressies gebruiken speciale tekens om zoekpatronen te definiëren. Hier zijn enkele basispatronen:

  • . - Komt overeen met elk afzonderlijk teken, behalve een nieuwe regel.
  • \d - Komt overeen met elk cijfer (equivalent aan [0-9]).
  • \w - Komt overeen met elk alfanumeriek teken (equivalent aan [a-zA-Z0-9_]).
  • \s ​​- Komt overeen met elk spatieteken.
  • ^ - Komt overeen met het begin van de tekenreeks.
  • $ - Komt overeen met het einde van de tekenreeks.

Voorbeelden

Hier volgen enkele voorbeelden van elementaire patroonherkenning:

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

Reguliere expressies gebruiken met groepen

Groepen worden gebruikt om delen van de overeenkomende tekst vast te leggen. Ze worden gedefinieerd met haakjes. Om bijvoorbeeld specifieke delen van een patroon te extraheren, kunt u groepen gebruiken:

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

Speciale tekens gebruiken

Reguliere expressies bevatten verschillende speciale tekens voor complexere patroonherkenning:

  • * - Komt overeen met 0 of meer voorkomens van het voorgaande element.
  • + - Komt overeen met 1 of meer voorkomens van het voorgaande element.
  • ? - Komt overeen met 0 of 1 voorkomen van het voorgaande element.
  • {n} - Komt exact overeen met n voorkomens van het voorgaande element.
  • | - Komt overeen met het patroon ervoor of het patroon erna.

Voorbeelden

Hier zijn enkele voorbeelden van het gebruik van speciale tekens:

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

Tekst vervangen door reguliere expressies

De functie re.sub() wordt gebruikt om delen van de tekenreeks te vervangen die overeenkomen met een patroon:

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.

Conclusie

Reguliere expressies zijn een krachtig hulpmiddel voor patroonherkenning en tekstmanipulatie in Python. Met de re-module kunt u tekst zoeken, matchen en vervangen op basis van complexe patronen. Door de basissyntaxis en speciale tekens te begrijpen, kunt u reguliere expressies gebruiken om een ​​breed scala aan tekstverwerkingstaken effectief af te handelen.