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.
- 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.
- 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.
- Kérdőjel (?): Egyezik az előző karakterrel, nulla vagy egyszer. Például a minta ABC? csak ab és abc egyezik.
- 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.
- Pont (.): Egyezik egy olyan karakterrel, akinek személye ismeretlen. Például, a.c illeszkedik az aac, abc, acc, a2c stb.
- 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.
- 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.
- 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:
- 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.
- 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.
- B: Egyezést ad vissza, ha a karakter nem található a szó elején vagy végén.
- d: Egyezik a karakterláncban szereplő számjegyekkel. Például, /d* egyezik az olyan számokkal, mint az 1, 12, 1232 stb.
- D: Egyezik a karakterlánc nem numerikus karaktereivel. /D egyezik az a, b, c, f stb.
- s: Egy szóköz karaktert illeszt a szövegbe.
- S: Megfelel a szövegben egy nem szóköz karakternek.
- 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.
- BAN BEN: Egyezést ad vissza, ha a karakterlánc nem tartalmaz alfanumerikus karaktereket vagy aláhúzásokat.
- 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
Keresés()
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áraHaszná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 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ólIratkozzon 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