Fångstgrupper, bakreferenser och substitution
Använd parenteser för att fånga delar av en matchning och återanvänd dem med bakreferenser för kraftfull matchning och textsubstitution.
Fångstgrupper, bakreferenser och substitution är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Vad är fångstgrupper?
Parenteser ( ) skapar en fångstgrupp som kommer ihåg texten den matchade, så att du kan referera till den senare.
echo "2026-05-29" | grep -E "([0-9]{4})-([0-9]{2})-([0-9]{2})"Numrering av grupper
Grupper numreras från vänster till höger utifrån den inledande parentesen. Grupp 1 är den första (, grupp 2 den andra och så vidare.
# (year)(month)(day)
# group 1 = year, 2 = month, 3 = dayBakåtreferenser vid matchning
En bakåtreferens som \1 matchar SAMMA text som en tidigare grupp fångade. Det är användbart för att hitta dubbletter.
echo "hello world world" | grep -E "(\w+) \1"Hitta dubblerade ord
Mönstret (\w+) \1 hittar ett ord som följs av sig självt, vilket är ett vanligt skrivfel.
echo "the the cat sat" | grep -oE "(\w+) \1"Fångstgrupper med sed
I sed-ersättningar återanvänds fångade grupper i ersättningstexten som \1 och \2. Använd -E för utökade reguljära uttryck.
echo "2026-05-29" | sed -E "s|([0-9]{4})-([0-9]{2})-([0-9]{2})|\3/\2/\1|"Byta plats på fält
Fånga två fält och ändra deras ordning i ersättningstexten för att omvandla dataformat.
echo "Doe, John" | sed -E "s/(\w+), (\w+)/\2 \1/"Icke-fångande grupper
Ibland grupperar du enbart för att tillämpa en kvantifierare, inte för att fånga text. I PCRE kan du skriva (?:...) för att undvika numrering.
# PCRE only (grep -P):
echo "abcabc" | grep -P "(?:abc){2}"Alternation i grupper
Kombinera grupper med alternation | för att matcha ett av flera alternativ och samtidigt fånga resultatet.
echo "cat dog fish" | grep -oE "(cat|dog)"Kvantifiera en grupp
Tillämpa kvantifierare på en hel grupp för att upprepa ett mönster. (ab)+ matchar en eller flera ab-sekvenser.
echo "ababab" | grep -oE "(ab)+"Fånga text i awk
awk använder match() tillsammans med RSTART och RLENGTH för att extrahera den matchade delen.
echo "id=42" | awk "{ if (match(\$0, /id=[0-9]+/)) print substr(\$0, RSTART, RLENGTH) }"Praktisk omformatering
Fångstgrupper är särskilt användbara när du i ett enda steg formaterar om loggar eller CSV-kolumner till en ny layout.
echo "John,30,NYC" | sed -E "s/([^,]+),([^,]+),([^,]+)/Name: \1 Age: \2 City: \3/"Snabbkontroll
Testa dina kunskaper om fångstgrupper.
Sammanfattning
Du behärskar nu fångstgrupper:
- Parenteser fångar och numrerar matchad text
- Bakåtreferenser som
\1matchar samma text igen - I
sedåteranvänds grupper i ersättningstext för att ändra ordningen på fält - Kvantifiera och använd alternation i grupper för flexibla mönster
Lär dig DevOps-bootcamp med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 142
- Lektioner
- 568
Vanliga frågor
Är lektionen ”Fångstgrupper, bakreferenser och substitution” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Fångstgrupper, bakreferenser och substitution”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Vad lär jag mig i ”Fångstgrupper, bakreferenser och substitution”?
Använd parenteser för att fånga delar av en matchning och återanvänd dem med bakreferenser för kraftfull matchning och textsubstitution. Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?
Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Fångstgrupper, bakreferenser och substitution”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?
Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Introduktion till reguljära uttryck (Regex)
- Avancerad grep med Regex
- Kombinera Regex med sed/awk
- Fångstgrupper, bakreferenser och substitution