Python RegEx

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)

Kör instans

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)

Kör instans

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)

Kör instans

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())

Kör instans

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)

Kör instans

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)

Kör instans

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)

Kör instans

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)

Kör instans

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)

Kör instans

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 Ingenistä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

Kör instans

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 funktionen
  • group() 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())

Kör instans

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)

Kör instans

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())

Kör instans

Kommentar:Om det inte finns några matchande poster, returneras värdet Ingenistället för Match-objekt.