Python Regex példák

Python Regex Peldak



A reguláris kifejezés teljes formája a reguláris kifejezés. Ez minden programozási nyelv fontos jellemzője. Ez egy karakterlánc-minta, amelyet egy karakterlánc-értékben lévő karakterláncok egyeztetésére, keresésére vagy cseréjére használnak. A regex minta használható a Python szkriptben a Python „re” moduljával. Ez a modul sokféle funkcióval rendelkezik a különböző karakterlánc-műveletek elvégzéséhez. Különböző metakarakterek és speciális szekvenciák használhatók a reguláris kifejezési minták meghatározására a feladatok kereséséhez vagy helyettesítéséhez. Ebben az oktatóanyagban bemutatjuk néhány gyakran használt metakarakter, speciális szekvencia és regex módszer használatának céljait a Python-szkriptben.

Néhány gyakran használt metakarakter a regexben:









Karakterek Célja
'+' Egy karakterláncban egy adott karakter egy vagy több előfordulásának egyeztetésére szolgál.
'*' Egy karakterlánc nulla vagy több előfordulásának egyeztetésére szolgál.
'?' Egy karakterlánc nulla vagy egy előfordulásának egyeztetésére szolgál.
'^' A karakterlánc elején található adott karakter vagy karakterlánc egyeztetésére szolgál.
'$' A karakterlánc végén lévő adott karakter vagy karakterlánc egyeztetésére szolgál.
'|' Egy karakterláncban található több karakterlánc bármelyikének egyeztetésére szolgál. Úgy működik, mint a VAGY logika.
„[]” Egy sor karakter egyezésére szolgál.
'{}' Egy adott számú karakter megfeleltetésére szolgál.



Néhány gyakran használt speciális sorozat a regexben:





Szekvenciák Célja
'\A' Arra használják, hogy megfeleljenek az adott karakternek a karakterlánc elején. Úgy működik, mint a „^” karakter.
„\b”, „\B” A „\b” a karakterlánc elején vagy végén lévő adott karaktert vagy szót tartalmazó karakterlánc egyezésére szolgál. A „\B” a „\b”-vel szemben működik.
„\d”, „\D” A „\d” a „[0-9]-hez hasonló” karakterlánc tizedes számának megfeleltetésére szolgál. A „\D” a „\d”-vel szemben működik.
„\s”, „\S” A „\s” a „[\n\t\r\v]-hez hasonló karakterláncban lévő szóközhöz illeszkedik”. A „\S” a „\s”-el szemben működik.
„\w”, „\W” A „\w” a karakterlánc alfabetikus és numerikus karaktereinek egyeztetésére szolgál. A „\W” a „\w”-vel szemben működik.
'\VAL VEL' Arra használják, hogy megfeleljenek a karakterlánc végén lévő adott karakternek. Úgy működik, mint a „$” karakter.

1. példa: Párosítsa a karakterláncot a Match() függvény segítségével

A match() függvény a karakterlánc elején lévő regex minta egyeztetésére szolgál. Ennek a függvénynek a szintaxisa a következő:



Szintaxis:

re.match ( minta, húr, zászlókat = 0 )

Itt az első argumentum a regex minta meghatározására szolgál. A második argumentum a fő karakterlánc meghatározására szolgál. A harmadik argumentum nem kötelező, és különböző típusú zászlók meghatározására szolgál.

Hozzon létre egy Python-fájlt a következő szkripttel, amely megfelel egy regex mintának egy meghatározott karakterlánccal a match() függvény segítségével. Először is egy meghatározott regex mintát használunk az illeszkedéshez. Ezután a rendszer egy keresőszót vesz át a felhasználótól, és azt regex mintaként használja, hogy megfeleljen a karakterlánc értékének. Ha talál egyezést, a keresett szó kinyomtatásra kerül. Ellenkező esetben a „Nem található egyező érték” karakterlánc kerül kinyomtatásra.

#Importálja a szükséges modult
import re

#Határozza meg a függvényt a megfelelő eredmény kinyomtatásához
def matchString ( ) :
#Ellenőrizze a match() függvény visszatérési értékét
ha együtt ! = Nincs:
nyomtatás ( ''' + mat.csoport ( ) + '' található itt:' + strValue + ''' )
más:
nyomtatás ( 'Nem található megfelelő érték.' )

#Határozza meg a karakterlánc értékét
strValue = 'Első az első kifelé.'
# Illessze a karakterláncot a minta alapján
mat = re.match ( '^Először' , strValue )
#Call funkció a mérkőzés eredményének kinyomtatásához
matchString ( )

#Vegye be a keresési karakterláncot
inValue = bemenet ( 'Írja be a keresési értéket: ' )
mat = re.match ( inValue + , strValue )
#Call funkció a mérkőzés eredményének kinyomtatásához
matchString ( )

Az „első” bemeneti értéknél a következő kimenet jelenik meg:

2. példa: Keresse meg a karakterláncot a Findall() függvény segítségével

A findall() függvény a fő karakterláncban található összes egyező szót sorként adja vissza.

Szintaxis:

re.findall ( minta, húr, zászlókat = 0 )

Itt az első argumentum a regex minta meghatározására szolgál. A második argumentum a fő karakterlánc meghatározására szolgál. A harmadik argumentum nem kötelező, és különböző típusú zászlók meghatározására szolgál.

Hozzon létre egy Python-fájlt a következő szkripttel, amely egy fő karakterlánc-értéket és egy keresési karakterlánc értéket vesz át a felhasználótól. Ezután használja a keresőszót a regex mintában, hogy megtalálja a keresett szót a fő karakterláncban. A kimenetben megjelenik az összes találat száma.

#Importálja a szükséges modult
import re

#Vegyél egy karakterlánc értéket
inValue = bemenet ( 'Írjon be egy karakterláncot:' )

#Vegyél be egy keresőszót
srcValue = bemenet ( 'Írjon be egy keresőszót:' )

#Keresés a szóra a karakterláncban
srcResult = re.findall ( srcValue + '\Ban ben*' , inValue )
#Nyomtassa ki a keresési eredményt
nyomtatás ( 'A szó '' + srcValue + '' található a karakterláncban'
+ str ( csak ( srcResult ) ) + 'szer.' )

A kimenet szerint az „enni” keresőszó kétszer található az „Élni eszünk, és nem azért élünk, hogy együnk” fő karakterláncban.

3. példa: Keresés a karakterláncban a Search() függvény segítségével

A search() egy másik függvény, amellyel egy karakterlánc értékben kereshet egy adott mintát. Ugyanazokat az argumentumokat tartalmazza, mint a match() és findall() függvények. Hozzon létre egy Python-fájlt a következő szkripttel, amely a „Python” szóra keres egy karakterlánc-értékben, amelyet a felhasználótól vesz át. Ha a keresett szó szerepel a beviteli értékben, a rendszer sikeres üzenetet nyomtat. Ellenkező esetben hibaüzenet kerül kinyomtatásra.

#Modul importálása
import re

#Vegyél egy karakterlánc értéket
inValue = bemenet ( 'Írjon be egy karakterláncot:' )
#Keresés az adott szóra a karakterlánc értékében
srcResult = re.search ( r 'Python\w*' , inValue )

#Ellenőrizze, hogy a keresett szó megtalálható-e vagy sem
ha srcEredmény:
nyomtatás ( ''' + srcResult.group ( ) + '' található itt:' + inValue + ''' )
más:
nyomtatás ( 'A keresési karakterlánc nem található.' )

Kimenet:

A következő kimenet jelenik meg, ha a bemeneti karakterlánc „Szeretem a Python programozást”:

A következő kimenet jelenik meg, ha a bemeneti karakterlánc „szeretem a PHP programozást”:

4. példa: Cserélje ki a karakterláncot a Sub() függvénnyel

A sub() függvény arra szolgál, hogy megkeressen egy adott karakterláncot a minta alapján, és lecserélje egy másik szóra. Ennek a függvénynek a szintaxisa a következő:

Szintaxis:

re.sub ( minta, csere_karakterlánc, fő_karakterlánc )

Ennek a függvénynek az első argumentuma tartalmazza azt a mintát, amely a fő karakterláncban az adott karakterlánc keresésére szolgál.

Ennek a függvénynek a második argumentuma tartalmazza a „replace” karakterlánc értékét.

Ennek a függvénynek a harmadik argumentuma tartalmazza a fő karakterláncot.

Ez a függvény visszaadja a lecserélt karakterláncot, ha az első argumentum alapján van egyező szó a fő karakterláncban.

Hozzon létre egy Python-fájlt a következő szkripttel, amely két számjegyet keres a karakterlánc végén. Ha a karakterlánc két számjegyet tartalmaz a végén, a számjegyek helyére az „$50” karakterlánc kerül.

#Modul importálása
import re

#Határozza meg a fő karakterláncot
strValue = 'A könyv ára 70'

#Határozza meg a keresési mintát
minta = '[0-9]{2}'

#Határozza meg a csereértéket
csereValue = '50 dollár'

#Keresse meg és cserélje ki a karakterláncot a minta alapján
modified_strValue = re.sub ( minta, csereérték, strValue )
#Nyomtassa ki az eredeti és a módosított karakterlánc-értékeket
nyomtatás ( 'Eredeti karakterlánc:' + strValue )
nyomtatás ( 'Módosított karakterlánc: ' + modified_strValue )

Kimenet:

A fő húr végén 70 volt. Tehát a 70 helyébe 50 dollár kerül a helyettesített karakterláncban.

5. példa: Cserélje ki a karakterláncot a Subn() függvény segítségével

A subn() függvény úgy működik, mint a sub() függvény, azzal a különbséggel, hogy a kimenetet sorként adja vissza, ahol az első index a lecserélt értéket, a második pedig az egyezések teljes számát tartalmazza.

Hozzon létre egy Python-fájlt a következő szkripttel, amely a „LinuxHint.com” karakterlánc A-tól L-ig terjedő ábécéi között keres a subn() függvény segítségével:

#Modul importálása
import re

#Határozza meg a fő karakterláncot
strValue = 'LinuxHint.com'

#Határozza meg a keresési mintát
minta = '[HOZ]'

#Határozza meg a csereértéket
csereValue = '*'

#Keresse meg és cserélje ki a karakterláncot a minta alapján
modified_strValue = re.subn ( minta, csereérték, strValue )
#Nyomtassa ki az eredeti karakterláncot és a subn() kimenetét
nyomtatás ( 'Eredeti karakterlánc: \n ' + strValue )
nyomtatás ( 'A subn() függvény kimenete: ' )
nyomtatás ( modified_strValue )

Kimenet:

A következő kimenet szerint az „L” és „H” karaktereket „*” karakter helyettesíti.

6. példa: A karakterlánc felosztása a Split() függvény segítségével

Hozzon létre egy Python-fájlt a következő szkripttel, amely a split() függvényt használta a fő karakterlánc több részre történő felosztására a regex minta alapján:

#Modul importálása
import re

#Határozza meg a karakterlánc értékét
strVal= 'Rupa Akter; Nira Chowdhury; Mazharul Islam'
#Határozza meg az adatok felosztásához használt mintát
minta = '[^A-Za-z ]'
#Tárolja a felosztott értékeket egy listában
split_result = re.split ( minta, strVal )
nyomtatás ( 'A split() függvény kimenete:' )
nyomtatás ( split_result )

Kimenet:

A kimenet szerint a fő karakterlánc három részre van osztva a szkriptben használt „[^A-Za-z ]” minta alapján.

Következtetés

A leggyakrabban használt metakarakterek, tartományok és Python beépített függvények célja a karakterláncok keresésére, cseréjére és felosztására ebben az oktatóanyagban egyszerű Python-szkriptek használatával látható.