Python RegEx
- Föregående sida Python JSON
- Nästa sida Python PIP
RegEx eller reguljära uttryck är en sekvens av tecken som bildar en sökmodell.
RegEx kan användas för att kontrollera om en sträng innehåller den specifika sökmodellen.
RegEx
Python erbjuder en modul som kallas re
s inbyggda paket, användbart för att hantera reguljära uttryck.
Importera re
Modul:
import re
RegEx i Python
Importera re
Efter att ha importerat modulen kan du börja använda reguljära uttryck:
Exempel
Sök efter strängen för att se om den börjar med "China" och slutar med "country":
import re txt = "China is a great country" x = re.search("^China.*country$", txt)
RegEx-funktioner
re
Modulen erbjuder ett antal funktioner som tillåter oss att söka efter strängar för att matcha:
Funktion | Beskrivning |
---|---|
findall | Returnerar en lista som innehåller alla matchningar |
search | Om det finns en matchning på någon plats i strängen, returneras ett Match-objekt |
split | Returnerar en lista som delar strängen vid varje matchning |
sub | Ersätt en eller flera matchningar med en sträng |
Meta-tecken
Meta-tecken är tecken med särskild betydelse:
Tecken | Beskrivning | Exempel | TIY |
---|---|---|---|
[] | En grupp tecken | "[a-m]" | Prova |
\ | Visar specifika sekvenser (kan också användas för att escapera specialtecken) | "\d" | Prova |
. | Någon tecken (utom nyckelrad) | "he..o" | Prova |
^ | Börjar med | "^hello" | Prova |
$ | Slutar med | "world$" | Prova |
* | Inga eller flera förekomster | "aix*" | Prova |
+ | En eller flera förekomster | "aix+" | Prova |
{} | Exakt antal förekomster | "al{2}" | Prova |
| | Båda | "falls|stays" | Prova |
() | Fångst och gruppering |
Speciella sekvenser
Speciella sekvenser är \
Följande tecken har särskild betydelse:
Tecken | Beskrivning | Exempel | TIY |
---|---|---|---|
\A | Om det specifika tecknet finns vid början av strängen, returneras matchningen | "\AThe" | Prova |
\b | Returnerar matchningar där det specifika tecknet finns vid början eller slutet av ordet |
r"\bain" r"rain\b" |
Prova Prova |
\B | Returnerar matchningar där det specifika tecknet finns, men inte vid början (eller slutet) av ordet |
r"\Bain" r"rain\B" |
Prova Prova |
\d | Returnerar matchningar där strängen innehåller siffror (siffror 0-9) | "\d" | Prova |
\D | Returnerar matchningar där strängen inte innehåller siffror | "\D" | Prova |
\s | Returnerar matchningar där strängen innehåller tomma tecken | "\s" | Prova |
\S | Returnerar matchningar där strängen inte innehåller tomma tecken | "\S" | Prova |
\w | Returnerar en matchning där strängen innehåller några ordtecken Tecken från a till Z, siffror från 0 till 9 och understrecks-tecknet _ |
"\w" | Prova |
\W | Returnerar en matchning där strängen inte innehåller några ordtecken | "\W" | Prova |
\Z | Om det specifika tecknet finns vid slutet av strängen, returneras matchningen | "Spanien\Z" | Prova |
Sätt
En uppsättning (Set) är ett par klamrar}} []
Ett sammanslutet grupp av tecken, med speciella betydelser:
Uppsatser | Beskrivning | Prova |
---|---|---|
[arn] | Returnerar en matchning som innehåller en av de angivna tecknen (a, r eller n) | Prova |
[a-n] | Returnerar matchningar av alla små bokstäver mellan a och n | Prova |
[^arn] | Returnerar matchningar av alla tecken utom a, r och n | Prova |
[0123] | Returnerar matchningar som innehåller någon av de angivna siffrorna (0, 1, 2 eller 3) | Prova |
[0-9] | Returnerar matchningar av alla siffror mellan 0 och 9 | Prova |
[0-5][0-9] | Returnerar matchningar av alla siffror mellan 0 och 9 | Prova |
[a-zA-Z] | Returnerar matchningar av alla bokstäver mellan a och z, både små och stora | Prova |
[+] | I uppsättningen har +, *, ., |, (), $, {} inga speciella betydelser, så [+] betyder: returnera matchningar av alla +-tecken i strängen | Prova |
findall() funktionen
findall()
Funktionen returnerar en lista som innehåller alla matchningar.
Exempel
Skriv ut listan över alla matchningar:
import re str = "China is a great country" x = re.findall("a", str) print(x)
Listan innehåller matchningarna i den ordning de hittades.
Om ingen matchning hittas, returneras en tom lista:
Exempel
Om ingen matchning hittas, returneras en tom lista:
import re str = "China is a great country" x = re.findall("USA", str) print(x)
search() funktionen
search()
Funktionen söker matchningar i strängen och returnerar ett Match-objekt om det finns en match.
Om det finns flera matchningar, returneras endast den första:
Exempel
Sök den första blanktecknet i strängen:
import re str = "China is a great country" x = re.search("\s", str) print("Den första blankteckenspositionen är: ", x.start())
Om ingen matchning hittas, returneras värdet Ingen
:
Exempel
Utför sökning utan att returnera matchning:
import re str = "China is a great country" x = re.search("USA", str) print(x)
split() funktionen
split()
Funktionen returnerar en lista där strängen delas vid varje matchning:
Exempel
Delar strängen vid varje blanktecken:
import re str = "China is a great country" x = re.split("\s", str) print(x)
Du kan specificera maxsplit
Parametrar för att kontrollera antalet förekomster:
Exempel
Delar endast strängen vid första förekomsten:
import re str = "China is a great country" x = re.split("\s", str, 1) print(x)
sub() funktionen
sub()
Funktionen ersätter matchningen med den valda texten:
Exempel
Använd siffran 9 för att ersätta varje blanktecken:
import re str = "China is a great country" x = re.sub("\s", "9", str) print(x)
Du kan specificera count
Parametrar för att kontrollera antalet ersättningar:
Exempel
Ersätt de två första förekomsten:
import re str = "China is a great country" x = re.sub("\s", "9", str, 2) print(x)
Match-objekt
Match-objektet är ett objekt som innehåller information om sökningen och resultaten.
Kommentar:Om det inte finns några matchningar, returneras värdet Ingen
istället för Match-objekt.
Exempel
Genomförandet returnerar ett Match-objekt
import re str = "China is a great country" x = re.search("a", str) print(x) # Kommer att skriva ut ett objekt
Match-objektet erbjuder egenskaper och metoder för att hämta information om sökningen och resultaten:
span()
Den returnerade tuplen innehåller början och slut för matchningen.string
Returnera den sträng som angetts till funktionengroup()
Returnera den matchande sträckan
Exempel
Skriv ut platsen för det första matchande uttrycket (början och slut).
Sök med reguljära uttryck för att hitta alla ord som börjar med stor bokstav "C":
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.span())
Exempel
Skriv ut den sträng som angetts till funktionen:
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.string)
Exempel
Skriv ut den matchande sträckan.
Sök med reguljära uttryck för att hitta alla ord som börjar med stor bokstav "C":
import re str = "China is a great country" x = re.search(r"\bC\w+", str) print(x.group())
Kommentar:Om det inte finns några matchande poster, returneras värdet Ingen
istället för Match-objekt.
- Föregående sida Python JSON
- Nästa sida Python PIP