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 modultimport 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 modultimport 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ásaimport 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ásaimport 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ásaimport 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ásaimport 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ó.