Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Gruppering, kvantifikatorer och ankare | Intermediära Reguljära Uttryck
Python-reguljära Uttryck

Gruppering, kvantifikatorer och ankare

Svep för att visa menyn

Att förstå hur man grupperar delar av ett mönster, anger antalet upprepningar och definierar var en träff ska ske i en sträng är grundläggande färdigheter för att skriva kraftfulla reguljära uttryck. I Python används parenteser () för att skapa grupper, vilket gör att flera tecken kan behandlas som en enhet. Kvantifikatorer som *, +, ? och {n,m} styr hur många gånger ett tecken eller en grupp ska förekomma. Ankare såsom ^ och $ är specialsymboler som matchar början respektive slutet av en sträng.

Gruppering med parenteser

Gruppering med parenteser gör det möjligt att använda kvantifikatorer på hela delmönster istället för enskilda tecken. Till exempel matchar (ab)+ en eller flera upprepningar av sekvensen ab.

Kvantifikatorer

  • Asterisk (*) betyder "noll eller flera gånger";
  • Plustecken (+) betyder "en eller flera gånger";
  • Frågetecken (?) betyder "noll eller en gång";
  • Klammrar ({n,m}) anger ett minsta (n) och högsta (m) antal gånger.

Ankare

Ankare är inte tecken som ska matchas, utan markörer för positioner i strängen. Cirkumflex (^) markerar början, medan dollartecken ($) markerar slutet av en sträng.

1234567
import re text = "hello hello world world world" pattern = r"(world\s+)+" matches = re.findall(pattern, text) print(matches)

Steg-för-steg-analys: Gruppering och kvantifikatorer

I detta exempel används det reguljära uttrycksmönstret (world\s+)+ för att hitta upprepade förekomster av ordet world följt av mellanslag. Så här fungerar mönstret:

  • Parenteserna () skapar en grupp runt world\s+, vilket gör att ordet world och det efterföljande blanksteget behandlas som en enhet;
  • Plustecknet + direkt efter gruppen innebär att denna grupp måste förekomma en eller flera gånger i följd;
  • Som resultat matchar mönstret varje sekvens där world upprepas med mellanslag emellan, och fångar den längsta sådana sekvensen.

Gruppering är särskilt användbart när du vill använda kvantifikatorer på en teckensekvens eller fånga delar av en träff för senare användning. Kvantifikatorer kan användas på enskilda tecken, teckenklasser eller hela grupper. Genom att använda ankare med dessa mönster kan du ytterligare styra var dina träffar sker, till exempel att matcha ett upprepat ord endast i början eller slutet av en sträng.

question mark

Vad matchar regex-mönstret (ab)+?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 1

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Gruppering, kvantifikatorer och ankare

Att förstå hur man grupperar delar av ett mönster, anger antalet upprepningar och definierar var en träff ska ske i en sträng är grundläggande färdigheter för att skriva kraftfulla reguljära uttryck. I Python används parenteser () för att skapa grupper, vilket gör att flera tecken kan behandlas som en enhet. Kvantifikatorer som *, +, ? och {n,m} styr hur många gånger ett tecken eller en grupp ska förekomma. Ankare såsom ^ och $ är specialsymboler som matchar början respektive slutet av en sträng.

Gruppering med parenteser

Gruppering med parenteser gör det möjligt att använda kvantifikatorer på hela delmönster istället för enskilda tecken. Till exempel matchar (ab)+ en eller flera upprepningar av sekvensen ab.

Kvantifikatorer

  • Asterisk (*) betyder "noll eller flera gånger";
  • Plustecken (+) betyder "en eller flera gånger";
  • Frågetecken (?) betyder "noll eller en gång";
  • Klammrar ({n,m}) anger ett minsta (n) och högsta (m) antal gånger.

Ankare

Ankare är inte tecken som ska matchas, utan markörer för positioner i strängen. Cirkumflex (^) markerar början, medan dollartecken ($) markerar slutet av en sträng.

1234567
import re text = "hello hello world world world" pattern = r"(world\s+)+" matches = re.findall(pattern, text) print(matches)

Steg-för-steg-analys: Gruppering och kvantifikatorer

I detta exempel används det reguljära uttrycksmönstret (world\s+)+ för att hitta upprepade förekomster av ordet world följt av mellanslag. Så här fungerar mönstret:

  • Parenteserna () skapar en grupp runt world\s+, vilket gör att ordet world och det efterföljande blanksteget behandlas som en enhet;
  • Plustecknet + direkt efter gruppen innebär att denna grupp måste förekomma en eller flera gånger i följd;
  • Som resultat matchar mönstret varje sekvens där world upprepas med mellanslag emellan, och fångar den längsta sådana sekvensen.

Gruppering är särskilt användbart när du vill använda kvantifikatorer på en teckensekvens eller fånga delar av en träff för senare användning. Kvantifikatorer kan användas på enskilda tecken, teckenklasser eller hela grupper. Genom att använda ankare med dessa mönster kan du ytterligare styra var dina träffar sker, till exempel att matcha ett upprepat ord endast i början eller slutet av en sträng.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 1
some-alt