Python

Pythoni stringi asendamine mustri abil

Pythoni stringi asendamine mustri abil
Kõiki stringiandmeid saab asendada mõne muu stringiga Pythonis, kasutades asenda () meetod. Kuid kui soovite stringi mis tahes osa asendada konkreetse mustri sobitamisega, peate kasutama regulaaravaldist. Seda kasutatakse kindla stringi väärtuses kindla mustri otsimiseks ja kui vaste leitakse, asendatakse see mõne muu stringiga. Python kasutab "re" moodul regulaaravaldise mustri kasutamiseks skriptis otsimiseks, sobitamiseks või asendamiseks. Regulaaravaldise mustrite kasutamine stringi asendamiseks on natuke aeglasem kui tavaline asendus () meetod, kuid paljude keerukate otsingute ja asenduste saab mustri abil hõlpsasti teha. Stringi saab Pythoni mustri abil mitmel viisil asendada. Selles õpetuses on näidatud mõned mustri tavalised kasutused stringi asendamiseks. Spyder3 redaktorit kasutatakse siin skripti kirjutamiseks ja käitamiseks.

Metamärkide loend:

Enne mustri kasutamist stringi asendamiseks peate teadma, kuidas kirjutada regulaaravaldise muster. Täpse vaste mustrina saate kasutada mis tahes stringi väärtust. Kuid konkreetse otsingu jaoks peate kirjutama regulaaravaldise mustri, kasutades metakakterit. Mustrite kirjutamiseks kõige sagedamini kasutatavate metamärkide loend on toodud allpool tähendusega.

    Iseloom  Kirjeldus
    .  Seda kasutatakse üksikute märkide, välja arvatud uue rea sobitamiseks.
    ^  Seda kasutatakse mis tahes märgi või stringi sobitamiseks

string.

    $  Seda kasutatakse mis tahes märgi või stringi sobitamiseks stringi lõpus.
    +  Seda kasutatakse mustri ühe või mitme esinemise sobitamiseks.
    ?  Seda kasutatakse mustri nulli või ühe esinemise sobitamiseks.
   ()  Seda kasutatakse mustrite rühmitamiseks.
   Seda kasutatakse alumise või ülemise või nii alumise kui ka ülemise põhjal sobitamiseks

piirid.

   []  Seda kasutatakse tähemärkide sobitamiseks antud vahemiku põhjal.
   |  Seda kasutatakse VÕI loogikal põhinevate mustrite sobitamiseks.
   \  Seda kasutatakse konkreetsete märkide või mittemärkide või numbrite või

mittekohaline.

Asenda meetod:

alam () meetod "re" moodulit kasutatakse Pythonis stringi asendamiseks.

Süntaks:

alam (muster, asendus, string, arv = 0, lipud = 0)

Siin muster, asendama ja string on kohustuslikud argumendid. Kui muster on sobitatud mis tahes osa string siis asendab see osa väärtusega asendades argument. Kaks ülejäänud argumenti on valikulised. Ülalmainitud metamärkide sub () meetodi mõningaid kasutusviise on näidatud järgmistes stringi asendamise näidetes.

Näide 1: asendage string täpse vastega

Kui teate täpset stringi väärtust, mida soovite põhistringist otsida, saate otsitava stringi väärtust mustrina kasutada alam () meetod. Looge järgmise skriptiga pythoni fail. Siin on otsitava stringi väärtus 'vihmane' ja asendav stringi väärtus 'päikeseline'.

#!/ usr / bin / env python3
# Impordi regex moodul
impordi re
# Määrake string
orgStr = "On vihmane päev"
# Asendage string
repStr = re.alam ("vihmane", "päikeseline", orgStr)
# Trükkige algne string
print ("Algtekst:", orgStr)
# Printige asendatud string
print ("Asendatud tekst:", repStr)

Väljund:

Väljund kuvatakse pildi paremal küljel.

Näide 2: stringi otsimine ja asendamine alguses

Selle kasutamise teadmiseks looge järgmise skriptiga pythoni fail '^' regulaaravaldise mustris. Siin, "^ [A-Za-z] + ' kasutatakse otsingu mustrina. See otsib kõiki tähestikulisi märke A kuni Z ja a kuni z teksti alguses ja asendage see tühja väärtusega. Välja vahetatud string trükitakse suurte tähtedega ülemine () meetod.

#!/ usr / bin / env python3
# Impordi regex moodul
impordi re
# Võtke stringi sisend
originalText = input ("Sisestage tekst \ n")
# Asendage string mustri põhjal
asendatudTekst = re.alam ('^ [A-Za-z] +', ", originalText).ülemine ()
# Printige asendatud string
print ("Asendatud tekst:", asendatudTekst)

Väljund:

Väljund kuvatakse pildi paremal küljel. Siin, "Tere, tere tulemast linuxhinti" võetakse sisendiks ja 'Tere' sõna asendatakse sõnaga " mustri jaoks.

Näide 3: stringi otsimine ja asendamine lõpus

'Kasutusala loomiseks looge järgmise skriptiga pythoni fail$ ' sümbol regulaaravaldises. Siin, "[a-z0-9] + $'kasutatakse skripti mustrina. See otsib teksti lõpus kõiki väikesi tähestikke ja numbreid ning kui väärtus on tõene, asendatakse vastav osa stringiga. 'com.bd".

#!/ usr / bin / env python3
# Impordi regex moodul
impordi re
# Võtke stringi sisend
originalText = input ("Sisestage URL-i aadress \ n")
# Asendage string mustri põhjal
asendatudTekst = re.sub ('[a-z0-9] + $', 'com.bd ', originalText)
# Printige asendatud string
print ("Asendatud tekst:", asendatudTekst)

Väljund:

Väljundit näidatakse pildi paremas servas. Siin, 'https: // www.google.com 'võetakse sisendtekstiks ja pärast asendamist' https: // www.google.com.bd 'trükitakse väljundina.

Näide 4: stringi konkreetse osa otsimine ja asendamine

Looge järgmise skriptiga pythoni fail, et otsida ja asendada teksti osa mustri vastavas kohas. Siin omistatakse nimega muutujale tekstina e-posti aadresside loend e-kirjad. '@ [a-z]' kasutatakse otsimiseks mustrit. See otsib kõiki alamstringi, mis algab väikeste tähestikega, millele järgneb '@sümbol. Kui mõni alamstring sobib, asendab see selle alamstringi sõnaga '@linuxhint".

#!/ usr / bin / env python3
# Impordi regex moodul
impordi re
# Määrake string
emails = '\ n [email kaitstud] \ n [email kaitstud] \ n [email kaitstud]'
# Asendage stringi konkreetne osa mustri põhjal
asendatudTekst = re.alam ('@ [a-z] *', '@ linuxhint', meilid)
# Trükkige algne string
print ("Algtekst:", e-kirjad)
# Printige asendatud string
print ("\ nUuendatud tekst:", asendatudTekst)

Väljund:

Väljund kuvatakse pildi paremal küljel. Siin asendatakse tekstis määratud e-posti aadressi kõik domeeniosad tekstigalinuxhint".

Järeldus:

Regulaarsete avaldiste mustrite väga levinud kasutusviisid on selles õpetuses näidatud stringide asendamiseks. Püütonis on palju muid võimalusi kirjutada erinevat tüüpi lihtsaid ja keerukaid mustreid teksti stringi otsimiseks ja asendamiseks.

Vaata autori videot: siin

League of Legendsi installimine Ubuntu 14-le.04
Kui olete League of Legends fänn, siis on see teile võimalus proovida League of Legendsit. Pange tähele, et LOL-i toetab PlayOnLinux, kui olete Linuxi...
Installige uusim OpenRA strateegiamäng Ubuntu Linuxi
OpenRA on tasuta / tasuta reaalajas strateegiamängumootor, mis loob uuesti Westwoodi varased mängud nagu klassikaline Command & Conquer: Red Alert. Ja...
Installige Linuxile uusim Dolphin Emulator for Gamecube & Wii
Dolphini emulaator võimaldab teil mängida valitud Gamecube & Wii mänge Linuxi personaalarvutites (PC). Vabalt saadaval oleva ja avatud lähtekoodiga m...