Python Regex piemēri

Python Regex Piemeri



Pilna regulārā izteiksmes forma ir regulārā izteiksme. Tā ir svarīga jebkuras programmēšanas valodas iezīme. Tas ir virknes modelis, ko izmanto, lai saskaņotu, meklētu vai aizstātu virknes virknes vērtībā. Regex modeli var izmantot Python skriptā, izmantojot Python moduli “re”. Šim modulim ir daudz veidu funkcijas, lai veiktu dažādas virknes darbības. Lai definētu regulārās izteiksmes modeļus, lai meklētu vai aizstātu uzdevumus, tiek izmantotas dažādas metarakstzīmes un īpašas secības. Šajā apmācībā ir parādīti dažu bieži lietotu metarakstzīmju, īpašu secību un regex metožu izmantošanas mērķi Python skriptā.

Dažas regulārā izteiksmē bieži lietotās metarakstzīmes:









Personāži Mērķis
'+' To izmanto, lai saskaņotu vienu vai vairākus noteiktas rakstzīmes gadījumus virknē.
'*' To izmanto, lai virknē atbilstu nullei vai vairākiem noteiktas rakstzīmes gadījumiem.
'?' To izmanto, lai virknē atbilstu nullei vai vienam noteiktas rakstzīmes gadījumam.
'^' To izmanto, lai atbilstu konkrētajai rakstzīmei vai virknei virknes sākumā.
'$' To izmanto, lai atbilstu konkrētajai rakstzīmei vai virknei virknes beigās.
'|' To izmanto, lai saskaņotu jebkuru no vairākām virknēm virknē. Tas darbojas kā VAI loģika.
'[]' To izmanto, lai saskaņotu rakstzīmju diapazonu.
'{}' To izmanto, lai atbilstu noteiktam rakstzīmju skaitam.



Dažas regulārā izteiksmē bieži lietotas īpašas secības:





Secības Mērķis
‘\A’ To izmanto, lai atbilstu konkrētajai rakstzīmei virknes sākumā. Tas darbojas kā rakstzīme “^”.
'\b', '\B' “\b” tiek izmantots, lai atbilstu virknei, kas satur konkrēto rakstzīmi vai vārdu virknes sākumā vai beigās. “\B” darbojas pretēji “\b”.
'\d', '\D' “\d” tiek izmantots, lai atbilstu decimālskaitlim virknē, kas ir līdzīgs “[0-9]”. “\D” darbojas pretēji “\d”.
'\s', '\S' “\s” tiek izmantots, lai atbilstu atstarpei virknē, kas ir līdzīga “[\n\t\r\v]”. “\S” darbojas pretēji “\s”.
'\w', '\W' “\w” tiek izmantots, lai saskaņotu virknes alfabēta un ciparu rakstzīmes. “\W” darbojas pretēji “\w”.
'\WITH' To izmanto, lai atbilstu konkrētajai rakstzīmei virknes beigās. Tas darbojas kā rakstzīme “$”.

1. piemērs: saskaņojiet virkni, izmantojot Match() funkciju

Funkcija Match() tiek izmantota, lai saskaņotu regulāru izteiksmi virknes sākumā. Šīs funkcijas sintakse ir norādīta šādi:



Sintakse:

re.match ( raksts, aukla, karogi = 0 )

Šeit pirmais arguments tiek izmantots, lai definētu regulārās izteiksmes modeli. Otrais arguments tiek izmantots, lai definētu galveno virkni. Trešais arguments nav obligāts un tiek izmantots, lai definētu dažādu veidu karogus.

Izveidojiet Python failu ar šādu skriptu, kas atbilst regex modelim ar noteiktu virkni, izmantojot funkciju match(). Pirmkārt, atbilstības noteikšanai tiek izmantots definēts regex modelis. Pēc tam no lietotāja tiek ņemts meklēšanas vārds un tiek izmantots kā regulārā izteiksmes modelis, lai tas atbilstu virknes vērtībai. Ja tiek atrasta atbilstība, tiek izdrukāts meklēšanas vārds. Pretējā gadījumā tiek izdrukāta virkne “Nav atrasta atbilstoša vērtība”.

#Importējiet nepieciešamo moduli
importa re

#Definējiet funkciju atbilstošā rezultāta drukāšanai
def matchString ( ) :
#Pārbaudiet funkcijas match() atgriešanās vērtību
ja kopā ar ! = Nav:
drukāt ( ''' + mat.grupa ( ) + '' ir atrodams '' + strValue + ''' )
cits:
drukāt ( 'Nav atrasta atbilstoša vērtība.' )

#Definējiet virknes vērtību
strValue = 'Pirmais iekšā, pirmais ārā.'
#Saskaņojiet virkni, pamatojoties uz modeli
paklājiņš = re.match ( '^Pirmais' , strValue )
#Zvana funkcija, lai izdrukātu spēles rezultātu
matchString ( )

#Paņemiet meklēšanas virkni
inValue = ievade ( 'Ievadiet meklēšanas vērtību:' )
paklājiņš = re.match ( inValue + , strValue )
#Zvana funkcija, lai izdrukātu spēles rezultātu
matchString ( )

“Pirmajai” ievades vērtībai tiek parādīta šāda izvade:

2. piemērs: atrodiet virkni, izmantojot funkciju Findall().

Funkcija findall() tiek izmantota, lai atgrieztu visus atbilstošos vārdus, kas ir atrodami galvenajā virknē kā virkni.

Sintakse:

re.findall ( raksts, aukla, karogi = 0 )

Šeit pirmais arguments tiek izmantots, lai definētu regulārās izteiksmes modeli. Otrais arguments tiek izmantots, lai definētu galveno virkni. Trešais arguments nav obligāts un tiek izmantots, lai definētu dažādu veidu karogus.

Izveidojiet Python failu ar šādu skriptu, kas no lietotāja saņem galvenās virknes vērtību un meklēšanas virknes vērtību. Pēc tam izmantojiet meklēšanas vārdu  regulārajā izteiksmē, lai atrastu meklēšanas vārdu galvenajā virknē. Izvadē tiek izdrukāts kopējais spēļu skaits.

#Importējiet nepieciešamo moduli
importa re

#Ņemiet virknes vērtību
inValue = ievade ( 'Ievadiet virkni:' )

#Izmantojiet meklēšanas vārdu
srcValue = ievade ( 'Ievadiet meklēšanas vārdu:' )

#Meklējiet vārdu virknē
srcResult = re.findall ( srcValue + '\In*' , inValue )
#Izdrukājiet meklēšanas rezultātu
drukāt ( 'Vārds '' + srcValue + '' ir atrodams virknē'
+ str ( tikai ( srcResult ) ) + 'reizes.' )

Atbilstoši iznākumam meklēšanas vārds “ēst” ir atrodams divreiz galvenajā virknē “Mēs ēdam, lai dzīvotu, un nedzīvojam, lai ēstu”.

3. piemērs. Meklējiet virkni, izmantojot funkciju Search ().

Search () ir vēl viena funkcija, lai meklētu noteiktu modeli virknes vērtībā. Tajā ir tādi paši argumenti kā funkcijās match() un findall(). Izveidojiet Python failu ar šādu skriptu, kas meklē vārdu “Python” virknes vērtībā, kas tiks ņemta no lietotāja. Ja ievades vērtībā ir meklēšanas vārds, tiek izdrukāts veiksmes ziņojums. Pretējā gadījumā tiek izdrukāts kļūdas ziņojums.

#Importēt re moduli
importa re

#Ņemiet virknes vērtību
inValue = ievade ( 'Ievadiet virkni:' )
#Meklējiet konkrēto vārdu virknes vērtībā
srcResult = re.search ( r 'Python\w*' , inValue )

#Pārbaudiet, vai meklēšanas vārds ir atrasts
ja srcRezultāts:
drukāt ( ''' + srcResult.group ( ) + '' ir atrodams '' + inValue + ''' )
cits:
drukāt ( 'Meklēšanas virkne nav atrasta.' )

Izvade:

Ja ievades virkne ir “Man patīk Python programmēšana”, tiek parādīta šāda izvade:

Ja ievades virkne ir “Man patīk PHP programmēšana”, tiek parādīta šāda izvade:

4. piemērs. Aizstājiet virkni, izmantojot funkciju Sub().

Funkciju sub() izmanto, lai meklētu noteiktu virkni, pamatojoties uz modeli, un aizstātu to ar citu vārdu. Šīs funkcijas sintakse ir norādīta šādi:

Sintakse:

re.sub ( modelis, aizstāt_virkne, galvenā_virkne )

Šīs funkcijas pirmais arguments satur modeli, kas tiek izmantots, lai meklētu konkrēto virkni galvenajā virknē.

Otrais šīs funkcijas arguments satur virknes “aizstāt” vērtību.

Šīs funkcijas trešais arguments satur galveno virkni.

Šī funkcija atgriež aizstāto virkni, ja galvenajā virknē, pamatojoties uz pirmo argumentu, ir kāds atbilstošs vārds.

Izveidojiet Python failu ar šādu skriptu, kas virknes beigās meklē divus ciparus. Ja virknes beigās ir divi cipari, cipari tiek aizstāti ar virkni “$50”.

#Importēt re moduli
importa re

#Definējiet galveno virkni
strValue = 'Grāmatas cena ir 70'

#Definējiet meklēšanas modeli
modelis = '[0-9]{2}'

#Definējiet aizstāšanas vērtību
aizstātVērtība = '50 ASV dolāri'

#Meklējiet un nomainiet virkni, pamatojoties uz modeli
modified_strValue = re.sub ( modelis, aizstājValue, strValue )
#Izdrukājiet sākotnējās un modificētās virknes vērtības
drukāt ( 'Oriģinālā virkne:' + strValue )
drukāt ( 'Modificēta virkne:' + modificēts_strValue )

Izvade:

Galvenās virknes beigās bija 70. Tātad aizstātajā virknē 70 tiek aizstāts ar 50 $.

5. piemērs. Aizstājiet virkni, izmantojot funkciju Subn().

Funkcija subn () darbojas tāpat kā funkcija sub (), izņemot to, ka tā atgriež izvadi kā korte, kur pirmais indekss satur aizstāto vērtību, bet otrais indekss satur kopējo atbilstību skaitu.

Izveidojiet Python failu ar šādu skriptu, kas meklē alfabētu A līdz L virknē “LinuxHint.com”, izmantojot funkciju subn():

#Importēt re moduli
importa re

#Definējiet galveno virkni
strValue = 'LinuxHint.com'

#Definējiet meklēšanas modeli
modelis = '[UZ THE]'

#Definējiet aizstāšanas vērtību
aizstātVērtība = '*'

#Meklējiet un nomainiet virkni, pamatojoties uz modeli
modified_strValue = re.subn ( modelis, aizstājValue, strValue )
#Izdrukājiet sākotnējo virkni un subn() izvadi
drukāt ( 'Oriģinālā virkne: \n ' + strValue )
drukāt ( 'Funkcijas subn() izvade:' )
drukāt ( modified_strValue )

Izvade:

Saskaņā ar šādu izvadi rakstzīmes “L” un “H” tiek aizstātas ar rakstzīmi “*”.

6. piemērs: Sadaliet virkni, izmantojot Split() funkciju

Izveidojiet Python failu ar šādu skriptu, kas izmantoja split() funkciju, lai sadalītu galveno virkni vairākās daļās, pamatojoties uz regex modeli:

#Importēt re moduli
importa re

#Definējiet virknes vērtību
strVal= 'Rupa Akter; Nira Chowdhury; Mazharul Islam'
#Definējiet modeli, kas tiks izmantots datu sadalīšanai
modelis = '[^A-Za-z ]'
#Saglabājiet sadalītās vērtības sarakstā
split_result = re.split ( modelis, strVal )
drukāt ( 'Split() funkcijas izvade:' )
drukāt ( split_result )

Izvade:

Atbilstoši izvadei galvenā virkne ir sadalīta trīs daļās, pamatojoties uz skriptā izmantoto modeli “[^A-Za-z ]”.

Secinājums

Visbiežāk izmantoto metarakstzīmju, diapazonu un Python iebūvēto funkciju mērķis virkņu meklēšanai, aizstāšanai un sadalīšanai ir parādīts šajā apmācībā, izmantojot vienkāršus Python skriptus.