Python reguljära uttryck på ett enkelt sätt
Reguljära uttryck (regex) är kraftfulla verktyg som används för att matcha och manipulera strängar baserat på mönster. I Python ger modulen re
stöd för reguljära uttryck, vilket gör att du kan utföra komplexa strängoperationer effektivt. Den här artikeln kommer att introducera dig till grunderna för reguljära uttryck och visa dig hur du använder dem effektivt i Python.
Komma igång med re
-modulen
För att använda reguljära uttryck i Python måste du importera modulen re
. Den här modulen tillhandahåller flera funktioner för att arbeta med regexmönster:
re.match()
- Söker efter en matchning endast i början av strängen.re.search()
- Söker igenom hela strängen efter en matchning.re.findall()
- Hittar alla matchningar i strängen och returnerar dem som en lista.re.sub()
- Ersätter matchningar i strängen med en specificerad ersättning.
Grundläggande mönstermatchning
Reguljära uttryck använder specialtecken för att definiera sökmönster. Här är några grundläggande mönster:
.
- Matchar alla enstaka tecken utom nyrad.\d
- Matchar valfri siffra (motsvarande[0-9]
).\w
- Matchar alla alfanumeriska tecken (motsvarande[a-zA-Z0-9_]
).\s
- Matchar alla blanksteg.^
- Matchar början av strängen.$
- Matchar slutet av strängen.
Exempel
Här är några exempel som visar grundläggande mönstermatchning:
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
Använda reguljära uttryck med grupper
Grupper används för att fånga delar av den matchade texten. De definieras med parenteser. Till exempel, för att extrahera specifika delar av ett mönster kan du använda 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
Använda specialtecken
Reguljära uttryck innehåller flera specialtecken för mer komplex mönstermatchning:
*
- Matchar 0 eller fler förekomster av föregående element.+
- Matchar 1 eller flera förekomster av föregående element.?
- Matchar 0 eller 1 förekomst av föregående element.{n}
- Matchar exaktn
förekomster av föregående element.|
- Matchar antingen mönstret före eller mönstret efter det.
Exempel
Här är några exempel med specialtecken:
# 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']
Ersätter text med reguljära uttryck
Funktionen re.sub()
används för att ersätta delar av strängen som matchar ett 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.
Slutsats
Reguljära uttryck är ett kraftfullt verktyg för mönstermatchning och textmanipulation i Python. Med modulen re
kan du söka, matcha och ersätta text baserat på komplexa mönster. Genom att förstå den grundläggande syntaxen och specialtecken kan du utnyttja reguljära uttryck för att effektivt hantera ett brett utbud av textbearbetningsuppgifter.