Python Extract Substring ved hjelp av regex

Python Extract Substring ved hjelp av regex

Det kan være flere case -scenarier der det kreves å trekke ut en substring fra en streng i python. For eksempel, mens du jobber med store datasett, kan det hende du må få spesifikke data fra tekstfeltene eller matche et bestemt mønster i en streng, for eksempel en e -postadresse eller telefonnummer. Dessuten hjelper substring -ekstraksjonsoperasjonen også med tekstbehandling og analyse.

Dette innlegget vil dekke følgende tilnærminger:

  • Metode 1: Python Extract Substring ved bruk av regex i “RE.Søk () ”-metode
  • Metode 2: Python Extract Substring ved bruk av regex i “RE.Match () ”-metode
  • Metode 3: Python Extract Substring ved bruk av regex i “RE.FindAll () ”-metode
  • Metode 4: Python Extract Substring ved bruk av regex i “RE.Finditer () ”-metode

Metode 1: Python Extract Substring ved bruk av regex i “RE.Søk () ”-metode

Python “re.Søk()”Metode ser etter den første forekomsten av forekomsten av det ekstra mønsteret i en streng og gir ut en“Kamp”Objekt. Det kan påberopes når du vil finne en spesifikk substring i en lengre streng, men aner ikke hvor ofte den oppstår.

Syntaks

Å bruke re.Søk () Metode, følg den gitte syntaks:

re.Søk (mønster, streng, flagg)

Her:

  • mønster”Representerer regexen du vil søke.
  • streng”Refererer til den spesifiserte strengen du vil søke i.
  • flagg”Representerer de valgfrie parametrene, for eksempel flerlinjemodus, saksfølsomhet osv.

Eksempel 1: Ekstrahering av tekstbasert substring ved bruk av “RE.Søk () ”-metode

For å bruke “re.Søk()”Metode for å trekke ut en substring, importerer først“re”Modul. Denne modulen tilbyr støtte for Regex:

Import re

Definer strengen du vil hente en substring:

String = 'Linuxhint er det beste opplæringsnettstedet'

Deretter spesifiser Regex. Her, “r”Indikerer at det er en rå streng å behandle tilbakeslag som de bokstavelige karakterene, og“beste”Er det definerte vanlige uttrykket eller regex:

regex = r'best '

Passere den opprettet “regex”Og“streng”Til re.Søk () -metode og lagre det resulterende objektet i “kamp”:

match = re.Søk (regex, streng)

Legg nå den gitte tilstanden for å trekke ut den matchede underlaget fra "kamp”Objekt returnert av re.Søk () Metode, og vis den på konsollen:

Hvis kamp:
sub_string = match.gruppe()
print (sub_string)

Det kan observeres at substringen “beste”Har blitt trukket ut ved å bruke“gruppe()”Metode for kampobjektet:

Eksempel 2: trekke ut numerisk substring ved bruk av “RE.Søk () ”-metode

Nå, definer en numerisk streng og søk etter den første forekomsten av ett eller flere sifre i den ved å passere “\ d+”Som regex til“re.Søk()”Metode:

String = '039-6546-0987'
trykk (re.søk (r '\ d+', streng))

I den spesifiserte regex:

  • \”Brukes for å rømme brevet“d”(Siffer karakter).
  • +”Betegner ett eller match sifre på rad:

Som du kan se, har det matchede objektet blitt returnert av "re.Søk()”Metode.

Metode 2: Python Extract Substring ved bruk av regex i “RE.Match () ”-metode

re.kamp()”Søker bare etter regexen i starten av strengene og gir et matchobjekt i tilfelle et vellykket søk. Denne metoden kan brukes når du vet at substring bare skjer ved starten av den gitte strengen.

Syntaks

Å påkalle re.Match () Metode, følg den gitte syntaks:

re.Match (mønster, streng, flagg)

Eksempel

For det første, definere det vanlige uttrykket som "'^l .. .t $'”. Denne Regex samsvarer med strengene som begynner med "l”, Slutt med“t”, Og har nøyaktig 8 tegn.

regex = '^l ... t $'

Deler deretter strengen. Gi den til re.Match () Metode, sammen med regexen som argumenter:

String = 'Linuxhint'
Resultat = re.Match (regex, streng)

Legg til "If-Else”Tilstand og spesifisere de respektive utskriftsuttalelsene for sakene hvis“Kamp”Objekt er returnert eller ikke:

Hvis resultat:
Print ("Søk er gjort med hell", resultat)
ellers:
Trykk ("Søket var mislykket.")

Produksjon

Metode 3: Python Extract Substring ved bruk av regex i “RE.FindAll () ”-metode

re.FindAll ()”Python -metodesøk etter alle forekomster av et mønster i de gitte strengene og sender ut en liste over ekstraherte underlag. Denne metoden brukes i disse tilfellene som er nødvendig for å hente flere underlag uten noen spesiell ordre.

Syntaks

Å påkalle re.FindAll () -metode, sjekk ut den gitte syntaks:

re.FindAll (mønster, streng, flagg)

Eksempel

Definer en streng som omfatter numeriske verdier. Spesifiser deretter regex -mønsteret som "r '\ d+'”For å matche ett eller flere sifre:

String = '4 timers boot camp Linuxhint -kurs for $ 14.99 '
regex = r '\ d+'

Deretter, ring "re.FindAll ()”Metode og passere den definerte regex og strengen som argumenter

fyrstikker = re.FindAll (regex, streng)

Nå, iterere over de returnerte “Kamp”Objekt som er lagret i Matches -variabelen og skriv ut elementene på konsollen:

For kamp i kamper:
trykk (match)

Produksjon

Metode 4: Python Extract Substring ved bruk av regex i “RE.Finditer () ”-metode

re.Finditer ()”Metoden fungerer på samme måte som RE.FindAll () -metode. Imidlertid returnerer den en iterator i stedet for en liste over underlag. I Python kan denne metoden brukes når det finnes et stort datasett, og det trenger ikke å lagre alle kamper samtidig. Mer spesifikt, re.Finditer () Metode behandler den ekstraherte substring en om gangen.

Syntaks

Å påkalle re.Finditer () -metode, følg den gitte syntaks:

re.Finditer (mønster, streng, flagg)

Eksempel

Først må du lage en streng. Deretter definerer du et regex -mønster som "r '[a-z]+'”Det samsvarer med en eller flere store bokstaver:

String = 'Linuxhint er det beste opplæringsnettstedet'
regex = r '[a-z]+'

Passer regexen og strengen som argumenter til “re.Finditer ()”Metode og lagre det resulterende matchobjektet i“fyrstikker”:

fyrstikker = re.Finditer (regex, streng)

Til slutt, itererer du over matchens objektelementer, trekker du ut substringen ved hjelp av "gruppen ()" -metoden og skriv ut på konsollen:

For kamp i kamper:
sub_string = match.gruppe()
print (sub_string)

Produksjon

Vi har samlet viktige tilnærminger relatert til å trekke ut substring i Python.

Konklusjon

For å trekke ut substring ved hjelp av regex i python, bruk "re.Søk()”,“re.match () ”,“ re.findAll () ”, eller“ re.Finditer ()”Metoder. Avhengig av dine krav, bruk “re.Søk()”Metode når det er påkrevd å trekke ut bare den første forekomsten av regex,“re.kamp()”Trekker ut substringen som startet starten på en streng,”re.FindAll ()”Henter flere underlag i henhold til mønsteret, og til slutt”re.Finditer ()”Behandle flere strenger én om gangen. Denne bloggen dekket metodene for å trekke ut substring i Python.