Python Regexi näited

Python Regexi Naited



Regexi täisvorm on regulaaravaldis. See on iga programmeerimiskeele oluline omadus. See on stringimuster, mida kasutatakse stringiväärtuse stringide sobitamiseks, otsimiseks või asendamiseks. Regex-mustrit saab kasutada Pythoni skriptis, kasutades Pythoni moodulit 're'. Sellel moodulil on mitut tüüpi funktsioone erinevate stringitoimingute tegemiseks. Ülesannete otsimiseks või asendamiseks kasutatakse regex-mustrite määratlemiseks erinevaid metamärke ja erijadasid. Selles õpetuses kuvatakse Pythoni skriptis mõnede sagedamini kasutatavate metamärkide, erijadade ja regex-meetodite kasutamise eesmärgid.

Mõned regexis sagedamini kasutatavad metamärgid:









Tegelased Eesmärk
'+' Seda kasutatakse konkreetse märgi ühe või mitme esinemise sobitamiseks stringis.
'*' Seda kasutatakse konkreetse tähemärgi nulli või enama esinemise vastendamiseks stringis.
'?' Seda kasutatakse konkreetse tähemärgi nulli või ühe esinemise vastendamiseks stringis.
'^' Seda kasutatakse konkreetse tähemärgi või stringi sobitamiseks stringi alguses.
'$' Seda kasutatakse konkreetse tähemärgi või stringi sobitamiseks stringi lõpus.
'|' Seda kasutatakse mis tahes stringi mitme stringi sobitamiseks. See toimib nagu VÕI-loogika.
'[]' Seda kasutatakse erinevate märkide sobitamiseks.
'{}' Seda kasutatakse kindla arvu märkide sobitamiseks.



Mõned regexis tavaliselt kasutatavad erijärjestused:





Jadad Eesmärk
'\A' Seda kasutatakse konkreetse märgi sobitamiseks stringi alguses. See töötab nagu '^' märk.
'\b', '\B' '\b' kasutatakse stringi vastendamiseks, mis sisaldab konkreetset tähemärki või sõna stringi alguses või lõpus. '\B' töötab '\b' vastas.
'\d', '\D' '\d' kasutatakse kümnendarvu vastendamiseks stringis, mis on sarnane '[0-9]'. '\D' töötab '\d' vastas.
'\s', '\S' '\s' kasutatakse tühiku sobitamiseks stringis, mis on sarnane '[\n\t\r\v]'. '\S' töötab '\s' vastas.
'\w', '\W' '\w' kasutatakse stringi tähe- ja numbrimärkide sobitamiseks. '\W' töötab '\w' vastas.
'\WITH' Seda kasutatakse konkreetse tähemärgi sobitamiseks stringi lõpus. See töötab nagu '$' märk.

Näide 1: Sobitage string funktsiooni Match() abil

Funktsiooni match() kasutatakse regex-mustri sobitamiseks stringi alguses. Selle funktsiooni süntaks on esitatud järgmiselt:



Süntaks:

uuesti matš ( muster, nöör, lipud = 0 )

Siin kasutatakse regex-mustri määratlemiseks esimest argumenti. Teist argumenti kasutatakse põhistringi määratlemiseks. Kolmas argument on valikuline ja seda kasutatakse erinevat tüüpi lippude määratlemiseks.

Looge Pythoni fail järgmise skriptiga, mis vastab regex-mustrile määratletud stringiga, kasutades funktsiooni match(). Esiteks kasutatakse sobitamiseks määratletud regex-mustrit. Järgmisena võetakse kasutajalt otsingusõna ja seda kasutatakse stringiväärtusega sobitamiseks regex-mustrina. Kui mõni vaste leitakse, trükitakse otsingusõna. Vastasel juhul prinditakse string „Sobivat väärtust ei leitud”.

#Impordi vajalik moodul
import re

#Määratlege sobivuse tulemuse printimise funktsioon
def matchString ( ) :
#Kontrollige funktsiooni match() tagastusväärtust
kui koos ! = Puudub:
printida ( ''' + mat.rühm ( ) + '' on leitud '' + strValue + ''' )
muu:
printida ( 'Sobivat väärtust ei leitud.' )

#Defineerige stringi väärtus
strValue = 'First in first out.'
#Sobitage string mustri põhjal
matt = re.match ( '^ Esiteks' , strValue )
#Call funktsioon matši tulemuse printimiseks
matchString ( )

#Võtke otsingustring
inValue = sisend ( 'Sisestage otsingu väärtus:' )
matt = re.match ( inValue + , strValue )
#Call funktsioon matši tulemuse printimiseks
matchString ( )

'Esimese' sisendi väärtuse jaoks kuvatakse järgmine väljund:

Näide 2: Stringi leidmine funktsiooni Findall() abil

Funktsiooni findall() kasutatakse kõigi põhistringist leitud sobivate sõnade tagastamiseks koretrina.

Süntaks:

re.findall ( muster, nöör, lipud = 0 )

Siin kasutatakse regex-mustri määratlemiseks esimest argumenti. Teist argumenti kasutatakse põhistringi määratlemiseks. Kolmas argument on valikuline ja seda kasutatakse erinevat tüüpi lippude määratlemiseks.

Looge Pythoni fail järgmise skriptiga, mis võtab kasutajalt põhistringi väärtuse ja otsingustringi väärtuse. Järgmiseks kasutage põhistringist otsingusõna leidmiseks regex-mustris otsingusõna. Väljundisse trükitakse vastete koguarv.

#Impordi vajalik moodul
import re

#Võtke stringi väärtus
inValue = sisend ( 'Sisestage string:' )

#Võtke otsingusõna
srcValue = sisend ( 'Sisestage otsingusõna:' )

#Otsige stringist sõna
srcResult = re.findall ( srcValue + '\In*' , inValue )
#Prindi otsingutulemus
printida ( 'Sõna '' + srcValue + '' on stringist leitud'
+ str ( ainult ( srcResult ) ) + ' korda.' )

Väljundi järgi leitakse otsingusõna “süüa” kaks korda põhistringist “Me sööme selleks, et elada ja ei ela selleks, et süüa”.

Näide 3: Otsige stringist funktsiooni Search() abil

Search () on veel üks funktsioon stringiväärtuse konkreetse mustri otsimiseks. See sisaldab samu argumente, mis funktsioonid match() ja findall(). Looge Pythoni fail järgmise skriptiga, mis otsib sõna 'Python' stringiväärtuses, mis võetakse kasutajalt. Kui otsingusõna on sisendväärtuses olemas, prinditakse eduteade. Vastasel juhul prinditakse veateade.

#Impordi moodul
import re

#Võtke stringi väärtus
inValue = sisend ( 'Sisestage string:' )
#Otsige stringiväärtusest konkreetset sõna
srcResult = re.search ( r 'Python\w*' , inValue )

#Kontrollige, kas otsingusõna on leitud või mitte
kui srcTulemus:
printida ( ''' + srcResult.group ( ) + '' on leitud '' + inValue + ''' )
muu:
printida ( 'Otsingu stringi ei leitud.' )

Väljund:

Kui sisendstringiks on 'Mulle meeldib Pythoni programmeerimine', kuvatakse järgmine väljund:

Kui sisendstringiks on 'Mulle meeldib PHP programmeerimine', kuvatakse järgmine väljund:

Näide 4: Asendage string funktsiooni Sub() abil

Funktsiooni sub() kasutatakse konkreetse stringi otsimiseks mustri põhjal ja selle asendamiseks teise sõnaga. Selle funktsiooni süntaks on esitatud järgmiselt:

Süntaks:

re.sub ( muster, asendusstring, peamine_string )

Selle funktsiooni esimene argument sisaldab mustrit, mida kasutatakse põhistringis konkreetse stringi otsimiseks.

Selle funktsiooni teine ​​argument sisaldab stringi väärtust 'asendada'.

Selle funktsiooni kolmas argument sisaldab põhistringi.

See funktsioon tagastab asendatud stringi, kui põhistringis on esimese argumendi põhjal mõni sobiv sõna.

Looge Pythoni fail järgmise skriptiga, mis otsib stringi lõpust kahte numbrit. Kui stringi lõpus on kaks numbrit, asendatakse need numbrid stringiga “$50”.

#Impordi moodul
import re

#Defineerige peamine string
strValue = 'Raamatu hind on 70'

# Määratlege otsingumuster
muster = '[0-9]{2}'

# Määratlege asendusväärtus
asendaValue = '50 dollarit'

#Otsige ja asendage string mustri alusel
modified_strValue = re.sub ( muster, asendusväärtus, strValue )
#Prindi algsed ja muudetud stringiväärtused
printida ( 'Originaalne string:' + strValue )
printida ( 'Muudetud string:' + modified_strValue )

Väljund:

Peastringi lõpus oli 70. Seega asendatakse 70 asendatud stringis 50 dollariga.

Näide 5: Asendage string funktsiooni Subn() abil

Funktsioon subn () töötab nagu funktsioon sub (), välja arvatud see, et see tagastab väljundi korteegina, kus esimene indeks sisaldab asendatud väärtust ja teine ​​​​indeks vastete koguarvu.

Looge Pythoni fail järgmise skriptiga, mis otsib funktsiooni subn() abil stringis 'LinuxHint.com' tähestikku A kuni L:

#Impordi moodul
import re

#Defineerige peamine string
strValue = 'LinuxHint.com'

# Määratlege otsingumuster
muster = '[TOLE]'

# Määratlege asendusväärtus
asendaValue = '*'

#Otsige ja asendage string mustri alusel
modified_strValue = re.subn ( muster, asendusväärtus, strValue )
#Prindi algne string ja subn() väljund
printida ( 'Originaalne string: \n ' + strValue )
printida ( 'Funktsiooni subn() väljund:' )
printida ( modified_strValue )

Väljund:

Vastavalt järgmisele väljundile asendatakse märgid “L” ja “H” tähemärgiga “*”.

Näide 6: Jagage string, kasutades funktsiooni Split().

Looge Pythoni fail järgmise skriptiga, mis kasutas funktsiooni split(), et jagada põhistring regex-mustri alusel mitmeks osaks:

#Impordi moodul
import re

#Defineeri stringi väärtus
strVal= 'Rupa Akter; Nira Chowdhury; Mazharul Islam'
#Määratlege andmete jagamiseks kasutatav muster
muster = '[^A-Za-z ]'
#Salvestage jagatud väärtused loendisse
split_result = re.split ( muster, strVal )
printida ( 'Funktsiooni split() väljund:' )
printida ( poolitatud_tulemus )

Väljund:

Vastavalt väljundile jagatakse põhistring kolmeks osaks skriptis kasutatava mustri “[^A-Za-z ]” alusel.

Järeldus

Kõige sagedamini kasutatavate metamärkide, vahemike ja Pythoni sisseehitatud funktsioonide eesmärk stringide otsimiseks, asendamiseks ja jagamiseks on selles õpetuses näidatud lihtsate Pythoni skriptide abil.