Gruppering, Kvantifikatorer og Ankre
Stryg for at vise menuen
Forståelse af, hvordan man grupperer dele af et mønster, angiver antallet af gentagelser og definerer, hvor et match skal forekomme i en streng, er essentielle færdigheder til at skrive effektive regulære udtryk. I Python bruges parenteser () til at oprette grupper, hvilket gør det muligt at behandle flere tegn som en enkelt enhed. Kvantifikatorer som *, +, ? og {n,m} styrer, hvor mange gange et tegn eller en gruppe skal forekomme. Ankre såsom ^ og $ er specialtegn, der matcher henholdsvis starten eller slutningen af en streng.
Gruppering med parenteser
Gruppering med parenteser gør det muligt at anvende kvantifikatorer på hele delmønstre i stedet for enkelte tegn. For eksempel matcher (ab)+ en eller flere gentagelser af sekvensen ab.
Kvantifikatorer
- Stjerne (
*) betyder "nul eller flere gange"; - Plustegn (
+) betyder "en eller flere gange"; - Spørgsmålstegn (
?) betyder "nul eller én gang"; - Krøllede parenteser (
{n,m}) angiver et minimum (n) og maksimum (m) antal gange.
Ankre
Ankre er ikke tegn, der matches, men markører for positioner i strengen. Hatte (^) angiver starten, mens dollartegn ($) angiver slutningen af en streng.
1234567import re text = "hello hello world world world" pattern = r"(world\s+)+" matches = re.findall(pattern, text) print(matches)
Trinvis analyse: Gruppering og kvantifikatorer
I dette eksempel bruges det regulære udtryksmønster (world\s+)+ til at finde gentagne forekomster af ordet world efterfulgt af mellemrum. Lad os gennemgå, hvordan dette mønster fungerer:
- Parenteserne
()opretter en gruppe omkringworld\s+, så ordetworldog det efterfølgende mellemrum behandles som en enkelt enhed; - Plustegnet
+-kvantifikatoren direkte efter gruppen betyder, at denne gruppe skal forekomme en eller flere gange i træk; - Som resultat matcher mønsteret enhver sekvens, hvor
worldgentages med mellemrum imellem, og fanger den længste sådan sekvens.
Gruppering er især nyttigt, når du vil anvende kvantifikatorer på en tegnsekvens eller fange dele af et match til senere brug. Kvantifikatorer kan anvendes på enkelte tegn, tegnklasser eller hele grupper. Ved at bruge ankre sammen med disse mønstre kan du yderligere styre, hvor dine matches forekommer, for eksempel kun at matche et gentaget ord i starten eller slutningen af en streng.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat