Modul Regular Expressions(RE) megadja a megfelelő karakterláncok(pattern) halmazát.
A RE analógia megértéséhez a MetaCharacters hasznosak, fontosak és a re modul függvényeiben fogjuk használni.
Ez összesen 14 metakarakter van, és a függvényekbe követve tárgyaljuk őket:
\ Used to drop the special meaning of character following it (discussed below) Represent a character class^ Matches the beginning$ Matches the end. Matches any character except newline? Matches zero or one occurrence.| Means OR (Matches with any of the characters separated by it.* Any number of occurrences (including 0 occurrences)+ One or more occurrences{} Indicate number of occurrences of a preceding RE to match.() Enclose a group of REs
- Function compile()
A szabályos kifejezéseket mintaobjektumokká fordítjuk, amelyek különböző műveletekhez, például mintaegyezések kereséséhez vagy karakterlánc-helyettesítések elvégzéséhez rendelkeznek metódusokkal.
.
import
re
p
=
re.
compile
(
''
)
print
(p.findall(
"Aye, said Mr. Gibenson Stark"
))
Kimenet:
A kimenet megértése:
Az első előfordulás az “e” az “Aye”-ban, és nem az “A”, mivel nagy- és kisbetű érzékeny.
A következő előfordulás ‘a’ a “said”-ban, majd ‘d’ a “said”-ban, ezt követi ‘b’ és ‘e’ a “Gibenson”-ban, az utolsó ‘a’ megegyezik a “Stark”-kal.
A ‘\’ metafora karakter nagyon fontos szerepet játszik, mivel különböző szekvenciákat jelez. Ha a backslash-t a metacharakter különleges jelentése nélkül akarjuk használni, használjuk a’\\’
Az osztály bármely szóköz karakterrel, ‘,’, vagy,’.’ .
Kimenet:
Kimenet:
.
import
re
p
=
re.
compile
(
'ab*'
)
print
(p.findall(
"ababbaabbb"
))
Kimenet:
A kimenet megértése:
A RE-nk ab*, amely ‘a’-t tetszőleges számú ‘b’ kíséri, 0-tól kezdődően.
A ‘ab’ kimenet érvényes, mert egyetlen ‘a’-t egyetlen ‘b’ kísér.
Az “abb” kimenet érvényes, mert egyetlen “a”-t 2 “b” kísér.
Az “a” kimenet érvényes, mert az “a”-t 0 “b” kíséri.
A ‘abbb’ kimenet, érvényes, mert az egyszerű ‘a’-t 3 ‘b’ kíséri.
- Function split()
A stringet egy karakter vagy egy minta előfordulása alapján osztja fel, a minta megtalálása után a stringből megmaradt karaktereket a kapott lista részeként adja vissza.
Szintaktika :
re.split(pattern, string, maxsplit=0, flags=0)
Az első paraméter, pattern a reguláris kifejezést jelöli, string a megadott string, amelyben a mintát keresi, és amelyben a felosztás történik, maxsplit ha nincs megadva, akkor nullának ‘0’ tekintendő, és ha bármilyen nem nulla értéket adunk meg, akkor legfeljebb annyi felosztás történik. Ha maxsplit = 1, akkor a karakterlánc csak egyszer lesz felosztva, ami egy 2 hosszúságú listát eredményez. A flagek nagyon hasznosak és segíthetnek a kód rövidítésében, nem szükséges paraméterek, pl.: flags = re.IGNORECASE, Ebben a felosztásban a nagy- és kisbetűket figyelmen kívül hagyjuk.
Kimenet:
Output:
- Function sub()
Syntax:
re.sub(pattern, repl, string, count=0, flags=0)
A ‘sub’ a függvényben a SubString-et jelenti, egy bizonyos reguláris kifejezés mintát keres a megadott stringben(3. paraméter), és a találásakor a substring mintát repl(2. paraméter) helyettesíti, count ellenőrzi és karbantartja, hogy ez hányszor fordul elő.
Kimenet
S~*ject has ~*er booked alreadyS~*ject has Uber booked alreadyS~*ject has Uber booked alreadyBaked Beans & Spam
- Function subn()
Syntax:
re.subn(pattern, repl, string, count=0, flags=0)
subn() mindenben hasonlít a sub()-hoz, kivéve a kimenet megadásának módját. Egy tuple-t ad vissza, amely az összes csere és az új karakterlánc számát tartalmazza, ahelyett, hogy csak a karakterláncot adná vissza.
Kimenet
('S~*ject has Uber booked already', 1)('S~*ject has ~*er booked already', 2)Length of Tuple is: 2S~*ject has ~*er booked already
- Function escape()
Syntax:
re.escape(string)
Visszaadja a karakterláncot minden nem alfanumerikus karakterrel backslashed, ez akkor hasznos, ha egy tetszőleges szó szerinti karakterláncot akar megfeleltetni, amely tartalmazhat reguláris kifejezés metakaraktereket.
import
re
print
(re.escape(
"This is Awseome even 1 AM"
))
print
(re.escape(
"I Asked what is this , he said \t ^WoW"
))
Kimenet
This\ is\ Awseome\ even\ 1\ AMI\ Asked\ what\ is\ this\ \,\ he\ said\ \ \ \^WoW
Ez a cikk Piyush Doorwar hozzájárulása. Ha tetszik a GeeksforGeeks és szeretnél hozzájárulni, írhatsz cikket a contribute.geeksforgeeks.org oldalon, vagy elküldheted a cikkedet a [email protected] címre. Lásd, hogy a cikked megjelenik a GeeksforGeeks főoldalán, és segíts más geekeknek.
Kérlek, írj megjegyzéseket, ha hibát találsz, vagy ha további információkat szeretnél megosztani a fent tárgyalt témával kapcsolatban.
Attention geek! Erősítse meg alapjait a Python programozási alaptanfolyammal, és tanulja meg az alapokat.
Az interjúra való felkészülés megkezdéséhez Fejlessze az adatszerkezetek fogalmait a Python DS tanfolyammal.