Python RegEx

RegEx eller regulære udtryk er en sekvens af tegn, der danner en søgepatron.

RegEx kan bruges til at kontrollere om en streng indeholder den specifikke søgepatron.

RegEx

Python tilbyder en modul kaldet re s indbyggede pakke, kan bruges til at håndtere regulære udtryk。

Import re Modul:

import re

RegEx i Python

Import re Modulen, kan du begynde at bruge regulære udtryk:

Eksempel

Søg efter strengen for at se om den starter med "China" og slutter med "country":

import re
txt = "China er et fantastisk land"
x = re.search("^China.*country$", txt)

Kør eksempel

RegEx-funktioner

re Modulen tilbyder en række funktioner, der tillader os at hente streng til at matche:

Funktion Beskrivelse
findall Returnerer en liste over alle matches
search Returnerer en Match-objekt, hvis der findes en match nogen sted i strengen
split Returnerer en liste over streng, der deles ved hver match
sub Erstat en eller flere matches med en streng

Meta-tegnet

Meta-tegnet er et tegn med en speciel betydning:

Tegn Beskrivelse Eksempel TIY
[] En gruppe tegn "[a-m]" Prøv det
\ Viser specielle sekvenser(kan også bruges til at escape specielle tegn) "\d" Prøv det
. Enhver tegn(undtagen linjeskiftet) "he..o" Prøv det
^ Begynder med "^hello" Prøv det
$ Afslutter med "world$" Prøv det
* Ingen eller flere gange "aix*" Prøv det
+ En eller flere gange "aix+" Prøv det
{} Præcis angivet antal gange "al{2}" Prøv det
| Enhver af de to "falls|stays" Prøv det
() Catches og grupper

Specielle sekvenser

Specielle sekvenser er \ Følget af et tegn fra nedenstående tabel, som har en speciel betydning:

Tegn Beskrivelse Eksempel TIY
\A Returnerer en match, hvis den angivne tegnene findes i begyndelsen af strengen "\AThe" Prøv det
\b Returnerer en match, hvor den angivne tegn findes i begyndelsen eller slutningen af et ord r"\bain"
r"rain\b"
Prøv det
Prøv det
\B Returnerer en match, hvor den angivne tegn findes, men ikke i begyndelsen af et ord(eller slutningen) r"\Bain"
r"rain\B"
Prøv det
Prøv det
\d Returnerer en match, hvor strengen indeholder tal(0-9) "\d" Prøv det
\D Returnerer en match, hvor strengen ikke indeholder tal "\D" Prøv det
\s Returnerer en match, hvor strengen indeholder blanke tegn "\s" Prøv det
\S Returnerer en match, hvor strengen ikke indeholder blanke tegn "\S" Prøv det
\w Returnerer en match, hvor strengen indeholder nogen bogstaver
(A til Z-karakterer, fra 0 til 9-tal og understregen _-tegn)
"\w" Prøv det
\W Returnerer en match, hvor strengen ikke indeholder nogen bogstaver "\W" Prøv det
\Z Returnerer en match, hvis den angivne tegnene findes i slutningen af strengen "Spanien\Z" Prøv det

Samling (Set)

Sæt (Set) er et par klammer} [] En gruppe tegn inden for et sæt, der har specialbetydning:

Sæt Beskrivelse Prøv det
[arn] Returnerer en match, hvor der findes en af de angivne tegn (a, r eller n) Prøv det
[a-n] Returnerer match af et hvilket som helst lille bogstav mellem a og n Prøv det
[^arn] Returnerer match af et hvilket som helst tegn, der ikke er a, r eller n Prøv det
[0123] Returnerer match af et hvilket som helst tal (0, 1, 2 eller 3) Prøv det
[0-9] Returnerer match af et hvilket som helst tal mellem 0 og 9 Prøv det
[0-5][0-9] Returnerer match af alle tal mellem 0 og 9 Prøv det
[a-zA-Z] Returnerer match af alle bogstaver mellem a og z, både små og store Prøv det
[+] I sæt, +, *, ., |, (), $, {} har ingen specialbetydning, så [+] betyder: returner alle match af + tegn i strengen Prøv det

findall() funktionen

findall() Funktionen returnerer en liste, der indeholder alle match.

Eksempel

Skriv ud listen over alle match:

import re
str = "China is a great country"
x = re.findall("a", str)
print(x)

Kør eksempel

Listen indeholder matchene i den rækkefølge, de blev fundet.

Returnerer en tom liste, hvis der ikke findes en match:

Eksempel

Returnerer en tom liste, hvis der ikke findes en match:

import re
str = "China is a great country"
x = re.findall("USA", str)
print(x)

Kør eksempel

search() funktionen

search() Funktionen søger efter match i strengen og returnerer et Match-objekt, hvis der findes en match.

Hvis der er flere match, returneres kun den første match:

Eksempel

Søg efter den første mellemrumstegn i strengen:

import re
str = "China is a great country"
x = re.search("\s", str)
print("Den første mellemrumstegn er placeret i position:", x.start())

Kør eksempel

Hvis der ikke findes en match, returneres værdien Ingen:

Eksempel

Udfør søgning uden at returnere match:

import re
str = "China is a great country"
x = re.search("USA", str)
print(x)

Kør eksempel

split() funktionen

split() Funktionen returnerer en liste, hvor strengen deles ved hver match:

Eksempel

Delt ved hver mellemrumstegn:

import re
str = "China is a great country"
x = re.split("\s", str)
print(x)

Kør eksempel

Du kan specificere maxsplit Parameter til at kontrollere antallet af gange:

Eksempel

Delt kun ved første forekomst af streng:

import re
str = "China is a great country"
x = re.split("\s", str, 1)
print(x)

Kør eksempel

sub() funktionen

sub() Funktionen erstatter matchen med den valgte tekst:

Eksempel

Erstat hver mellemrumstegn med tallet 9:

import re
str = "China is a great country"
x = re.sub("\s", "9", str)
print(x)

Kør eksempel

Du kan specificere count Parameter til at kontrollere antallet af erstatninger:

Eksempel

Erstat de første to forekomster:

import re
str = "China is a great country"
x = re.sub("\s", "9", str, 2)
print(x)

Kør eksempel

Match-objektet

Match-objektet er et objekt, der indeholder oplysninger om søgningen og resultaterne.

Kommentar:Hvis der ikke er nogen match, returneres værdien Ingeni stedet for Match-objektet.

Eksempel

Udførelsen vil returnere et Match-objekt fra søgningen:

import re
str = "China is a great country"
x = re.search("a", str)
print(x) # Vil printe et objekt

Kør eksempel

Match-objektet tilbyder egenskaber og metoder til at hente oplysninger om søgningen og resultaterne:

  • span() Den returnerede tuple indeholder start- og slutpositionen for matchen
  • .string Returner den streng, der er indsendt til funktionen
  • group() Returner den matchende del af strengen

Eksempel

Print placeringen af den første match (start- og slutposition).

Find stregt tegnudtryk, der starter med store bogstaver "C":

import re
str = "China is a great country"
x = re.search(r"\bC\w+", str)
print(x.span())

Kør eksempel

Eksempel

Print den streng, der er indsendt til funktionen:

import re
str = "China is a great country"
x = re.search(r"\bC\w+", str)
print(x.string)

Kør eksempel

Eksempel

Print den matchende del af strengen.

Find stregt tegnudtryk, der starter med store bogstaver "C":

import re
str = "China is a great country"
x = re.search(r"\bC\w+", str)
print(x.group())

Kør eksempel

Kommentar:Hvis der ikke er nogen match, returneres værdien Ingeni stedet for Match-objektet.