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
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:
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 reDefiner 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: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'I den spesifiserte regex:
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'Legg til "If-Else”Tilstand og spesifisere de respektive utskriftsuttalelsene for sakene hvis“Kamp”Objekt er returnert eller ikke:
Hvis resultat: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 '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: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'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: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.