Kezdő útmutató a rendszeres kifejezésekhez Python segítségével

Kezdő útmutató a rendszeres kifejezésekhez Python segítségével

Ha Ön programozó, akkor valószínű, hogy már tudja, mi a reguláris kifejezés (regex). A regex mintákat szinte minden mainstream programozási nyelvben alkalmazták, de ennek ellenére a minták erejét és sokoldalúságát a legtöbb fejlesztő nem ismeri fel.





Ez az útmutató a reguláris kifejezésekről és azok használatáról szól a Python programozási nyelven.





Mik azok a reguláris kifejezések?

A reguláris kifejezések olyan minták, amelyek segítenek a felhasználónak egyeztetni a szövegfájlok és karakterláncok karakterkombinációit. Rendszeres kifejezésekkel szűrhet vagy kereshet egy adott mintát a parancs vagy a dokumentum kimenetében.





A reguláris kifejezéseknek többféle használata is létezik, a leghíresebb a grep parancs Linuxon . Más alkalmazások közé tartozik az információszűrés, például az e -mail címek és telefonszámok kinyerése az adatleíró adatbázisból.

A fő ok, amiért sok fejlesztő elszakad a reguláris kifejezésektől, az a mintaegyeztetés erejével kapcsolatos tudatosság hiánya. Néhányan még a rendszeres kifejezéseket is zavarónak találják a mintákban használt tetemes karakterek és sorozatok miatt.



Bármi legyen is az oka, a rendszeres kifejezések a programozás egyik legfontosabb szempontja, és ez lesz az, amiről mindenkinek tudnia kell.

legjobb oldaltöltő alkalmazások tűz -tv -hez

Reguláris kifejezések: karakterek és sorozatok egyeztetése

A regex önmagában teljesen új nyelv. A regex motor több, meghatározott jelentéssel ellátott karakterből álló mintákat értelmez. Az alapvető literálok, például az alfanumerikus karakterek megegyeznek önmagukkal. De az összetett karakterek, mint a $, *, +, {stb. Segítenek a magasabb rendű egyezésben.





  1. Csillag (*): Az előző karakterrel nulla vagy több alkalommal egyezik. A karakter szó szerinti jelentése „elem n -szerese”. Például, ha a reguláris kifejezés az abc * , a megfelelő karakterláncok ab, abc, abcc, abccc, abcccc stb. A kifejezés [időszámításunk előtt]* egyezik a bc, bcbc, bcbc stb.
  2. További (+): Egyszer vagy többször egyezik az előző karakterrel. A működése a + karakter hasonló * , de a + karakter kihagyja a mintát, ha a karakter nem fordul elő. Például, abc + illeszkedni fog abc, abcc, abccc stb., de nem ab.
  3. Kérdőjel (?): Egyezik az előző karakterrel, nulla vagy egyszer. Például a minta ABC? csak ab és abc egyezik.
  4. Cső (|): Binárisként használják VAGY operátor. Egyezik a cső előtt és után következő karakterekkel. Például, a | b egyezik az a -val vagy a b -vel.
  5. Pont (.): Egyezik egy olyan karakterrel, akinek személye ismeretlen. Például, a.c illeszkedik az aac, abc, acc, a2c stb.
  6. Sárgarépa (^): Illeszkedik a minta első karakteréhez. Például, ^Ra egyezik a következővel kezdődő szavakkal: Ki mint például a Nyúl, a Mosómedve és a Véletlen.
  7. Dollár ($): Illeszkedik a minta utolsó karakteréhez. Például, egy $ egyezik a következővel végződő szavakkal: an mint Van, Dan és Plan.
  8. Kötőjel (-): Karaktersor meghatározására szolgál. Például, [0-9] minden egy számjegyű numerikus karakternek megfelel.

A reguláris kifejezési mintákban használt speciális szekvenciák a következők:

  1. NAK NEK: Egyezést ad vissza, ha a következő karakterek jelen vannak a karakterlánc elején. Például, ATE egyezik a szavakkal, amelyek a következővel kezdődnek: Az mint például Ők, Ők, stb.
  2. b: Egyezést ad vissza, ha a karakter a szó elején vagy végén található. Például, bmad és őrült b illeszkedik olyan szavakhoz, mint pl készült és nomád illetőleg.
  3. B: Egyezést ad vissza, ha a karakter nem található a szó elején vagy végén.
  4. d: Egyezik a karakterláncban szereplő számjegyekkel. Például, /d* egyezik az olyan számokkal, mint az 1, 12, 1232 stb.
  5. D: Egyezik a karakterlánc nem numerikus karaktereivel. /D egyezik az a, b, c, f stb.
  6. s: Egy szóköz karaktert illeszt a szövegbe.
  7. S: Megfelel a szövegben egy nem szóköz karakternek.
  8. an ben: Egyezést ad vissza, ha a karakterlánc alfanumerikus karaktereket tartalmaz, beleértve aláhúzásokat is. Például, an ben egyezik az a, b, c, d, 1, 2, 3 stb.
  9. BAN BEN: Egyezést ad vissza, ha a karakterlánc nem tartalmaz alfanumerikus karaktereket vagy aláhúzásokat.
  10. VAL VEL: A karakterlánc végén lévő karaktereket illeszti. Például, vége Z egyezik a következővel végződő szavakkal: vége mint hajlítás, javítás, hajlam stb.

Python módszerek a reguláris kifejezésekhez

A Pythonban a újra A könyvtár minden szükséges funkciót és segédprogramot biztosít a regex programokban való megvalósításához. Nem kell letöltenie a könyvtárat a pip használatával, mivel az előre telepítve van a Python értelmezővel.





Az importáláshoz újra könyvtárat a Pythonban, adja hozzá a következő kódot a szkripthez:

import re

Ne feledje, hogy a Python rendszeres kifejezéseinek átadása közben nyers karakterláncokat használunk, mivel nem értelmeznek speciális karaktereket, mint pl n és t eltérően.

Mérkőzés()

Az re.match () metódus a Pythonban visszaad egy regex objektumot, ha a program egyezést talál a megadott karakterlánc elején. Ez a függvény két alapvető érvet tartalmaz:

re.match(pattern, string)

...ahol minta a reguláris kifejezés és húr az a szöveg, amit keresni kell.

Nézze meg az alábbi kódrészletet.

import re
match = re.match(r'Word', 'This sentence contains a Word')
print(match)

Az r karakter a karakterlánc előtt a nyers karakterláncot jelenti.

Kimenet:

None

A fent említett kód visszatér Egyik sem mivel Szó nem volt jelen a húr elején.

Ha talál egyezést, akkor az egyezést kinyomtathatja a csoport() metódus, amely a regex objektumhoz tartozik.

import re
match = re.match(r'Word', 'Word is hard to read')
print(match.group(0))

Kimenet:

Word

Az re.search () metódus hasonló érveket használ, mint a re.match (). Míg a match () csak a karakterlánc elején lévő egyezéseket adja vissza, keresés() a karakterlánc bármely indexében talált egyezéseket adja vissza.

import re
match = re.search(r'Word', 'This sentence contains a Word. Word is hard to read.')
print(match.group(0))

Vegye figyelembe, hogy a mérkőzés() és keresés() metódusok csak egy mintaegyeztetést adnak vissza. A fent említett kódban Szó kétszer jelenik meg. De a keresés() függvény csak a szó első előfordulásának felel meg.

Word

Találd meg mindet()

Mint már sejtheti, a Találd meg mindet() metódus a karakterlánc minden lehetséges egyezését visszaadja.

import re
match = re.search(r'Word', 'This sentence contains a Word. Word is hard to read.')
for elem in match:
print(elem)

A reggex objektum visszaadása helyett a findall () függvény az összes egyezés listáját adja vissza. A listában a a segítségével ismétlődhet ciklushoz pythonban .

Hasított()

Ha egy karakterláncot rész-karakterláncokra kíván osztani, mintát elválasztóként, akkor a hasított() funkcióra van szüksége.

import re
split = re.split(r'and', 'This word and that and this are different.')
print(split)

Kimenet:

['This word', 'that', 'this are different.']

Alatti()

Az alatti() metódus lehetővé teszi a felhasználó számára, hogy egy adott szót helyettesítsen a minta helyén. Ehhez a következő érvek szükségesek.

re.sub(pattern, replacement, string)

Fontolja meg ezt a kódrészletet:

import re
result = re.sub(r'and', 'or', 'Dave and Harry must be punished.')
print(result)

Kimenet:

Dave or Harry must be punished.

Fordítás ()

Az re.kompile () módszer a újra könyvtár lehetővé teszi a felhasználó számára, hogy a reguláris kifejezés minta fordított változatát tárolja a memóriában. Ezután a lefordított objektum használatával a felhasználó gyorsan szűrheti a megadott szöveges kiíratást az egyező mintákhoz.

import re
pattern = re.compile('Python')
match = pattern.findall('Python is a great language for writing scripts. Python is easy to learn.')
print(match)

Ezt a funkciót elsősorban olyan erőforrás-igényes és sok időt igénylő minták mentésére használják. A minta előző objektumként történő összeállítása és mentése megoldja ezt a problémát.

Használja ki a Regex erejét a Python segítségével

Amikor szöveges fájlokkal és kimenettel dolgozik, a regex kiváló eszköz az Ön rendelkezésére. Gyorsan írhat néhány kódot a dokumentum bizonyos mintáinak szűrésére vagy helyettesítésére.

Az összes karakter és a hozzájuk tartozó sorozatok memorizálása nehéz lehet, ha csak a regex használatával kezdi. A rendszeres kifejezések jobb megismerése érdekében a karakterekre, módszerekre és sorozatokra hivatkozva időnként feltétlenül segít hosszú távon.

Részvény Részvény Csipog Email A Python RegEx csalólap kezdő programozók számára

Használja ezt a Python reguláris kifejezések listáját, hogy jobban megismerhesse ezt a sokoldalú programozási nyelvet.

Olvassa tovább
Kapcsolódó témák
  • Programozás
  • Programozás
  • Piton
A szerzőről Deepesh Sharma(79 cikk megjelent)

A Deepesh a MUO Linux -szerkesztője. Információs útmutatókat ír Linuxon, célja, hogy boldog élményt nyújtson minden újonnan érkezőnek. Nem biztos a filmekben, de ha a technológiáról akar beszélni, akkor ő a pasija. Szabadidejében találhat könyveket olvasni, különböző zenei műfajokat hallgatni vagy gitározni.

Továbbiak a Deepesh Sharma -tól

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, véleményeket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide