Mi a szabályos kifejezés?
Mielőtt a gyakorlati példák felé haladnánk, tudnunk kell, hogy mi is a szabályos kifejezés valójában. A reguláris kifejezés egy olyan karaktersorozat, amely meghatározza az input vagy a keresési minta felépítését. Képzelje el, hogy e-mailt vagy jelszót ír be valamilyen véletlenszerű weboldalra, például a Facebookra, a Twitterre vagy a Microsoftra. Próbáld rosszul megfogalmazni, és rosszul értem, próbáld meg szembeszállni a konvenciójukkal. Világosan rámutat ezekre a hibákra az Ön számára. Addig nem folytathatja a következő lépést, amíg a bevitel nem egyezik a háttérbe beállított mintával. Ezt a sajátos mintát, amely korlátozza bármilyen további vagy irreleváns információ megadását, regexnek vagy reguláris kifejezésnek nevezzük.
Reguláris kifejezések a Pythonban
A reguláris kifejezéseknek nincs más szerepük a pythonban, mint más programozási nyelvekben. A Python tartalmazza a modult újra amely teljes támogatást nyújt a reguláris kifejezések használatához. Bármikor, amikor nem megfelelő vagy párosíthatatlan információt ad meg, vagy bármilyen hiba történik, ez történik újra modul kivételként fogja elkapni, ami végül segít megoldani a szükséges problémákat.
Reguláris kifejezések mintái
Nagyon sok karakter áll rendelkezésre olyan sorrendben, amely egy meghatározott reguláris kifejezésmintát készít. Kivéve a vezérlő karaktereket, (+ ? . * ^ $ () [] | \), minden szereplő megegyezik önmagával. A vezérlő karakterek azonban kikerülhetők egy visszavágás előírásával.
Az alábbiakban egy táblázat található, amely egy mintát és leírást tartalmaz a pythonban végzett munkájukról.
Minta | Leírás | |
[Pp] ython | A „Python” vagy a „python” egyezés | |
Kád [Ee] | A „TubE” vagy a „Tube” mérkőzés | |
[aeiou] | Egyezzen bármilyen kisbetűvel | |
[0–9] | Bármelyik számjegyet egyeztesse 0 és 9 között | |
[a-z] | Egyezzen bármilyen kisbetűs ASCII betűvel | |
[A-Z] | Illesszen bármilyen nagybetűs ASCII betűt | |
[a-zA-Z0-9] | Egyezzen bármilyen kis- és nagybetűs ASCII betűvel vagy 0 és 9 közötti számjegy | |
[^ aeiou] | Bármihez illeszkedjen, de ne a kisbetűs magánhangzókhoz | |
[^ 0–9] | Bármivel egyezzen, de ne számjeggyel | |
. | Bármely karakter egyeztetése, kivéve az új sort | |
\ d | Bármely számjegy egyezése: [0–9] | |
\ D | Nem számjegy egyeztetése: [^ 0-9] | |
\ s | Illessze be a fehér mezőket | |
\ S | Illessze a nem fehér szóközöket | |
\ A | A karakterlánc elejének egyezése | |
\ Z | Megfelel a húr végének | |
\ w | Egyezik a szó karaktereivel | |
\ W | Nem szó szerinti karakterek egyeztetése | |
[…] | Bármelyik karaktert illessze zárójelben | |
[^…] | Egyetlen karaktert illesszen be zárójelben | |
$ | Illessze a sor végét | |
^ | Illessze a sor elejét |
Egyeztetési és keresési funkciók a Pythonban
Most itt két példát fogunk látni a pythonban létező két beépített funkcióval. Az egyik egyezés, a másik pedig keresési funkció. Mindkettő ugyanazokat a paramétereket veszi fel, amelyek a következők:
- Minta - Szabályos kifejezés, amelyet illeszteni vagy keresni kell.
- Húr - Karakterlánc, amelyet egyeztetni vagy keresni lehet egy mondatban vagy egy bemenetben.
Mielőtt áttérnénk a példa részre, itt van egy másik dolog, amelyet tudnia kell. Két módszer használható a következő csoportok megszerzésére:
- csoportok ()
- csoport (szám = 0,1,2…)
Az történik, hogy ha egyezési vagy keresési függvényeket használunk, akkor a sztringekben található összes kapcsolódó minta alcsoportjait alkotja, és 0-tól kezdve strukturálja őket. Lásd az alábbi példát, hogy minél jobb ötletet kapjon.
Egyezés funkció (példa)
A következő példában vettünk egy listát, amelyben használtunk egy reguláris kifejezést, amely ellenőrzi az 'a' betűvel kezdődő szavakat, és csak akkor választ, ha mindkét szó ugyanazzal az i betűvel kezdődik.e.: „a”.
import rearraylist = [“affection affektus”, “affection act”, “affection programozás”]
a tömblista eleméhez:
k = re.egyezés („(a \ w +) \ W (g \ w +)”, elem)
ha k:
nyomtat ((z.csoportok ()))
Kimenet:
(„szeretet”, „befolyás”)(„szeretet”, „cselekedet”)
A lista harmadik elemét nem vesszük figyelembe, mivel nem egyezik a szokásos kifejezéssel, amely szerint mindkét szónak „a” -val kell kezdődnie.
Keresési funkció (példa)
Ez a funkció különbözik az egyezéstől. A keresés az egész mondatot végigpásztázza, míg az egyezés nem. Az alábbi példában a keresési módszer sikeres, de az egyezés funkció nem.
import reInput = „DocumentationNew”
v = re.keresés („(ta.*) ”, Bemenet)
ha v:
nyomtatás („eredmény:” v.csoport (1))
Kimenet:
eredmény: tationNew'ta.* * a „ta” után bármit jelent, ami „tationNew” -ként adja meg eredményünket a keresett „DocumentationNew” bemenetből.
Következtetés
A reguláris kifejezések kulcsfontosságúak az összes szoftverfejlesztő számára, és most már könnyen láthatja, hogyan kell használni a reguláris kifejezéseket a Python programozási nyelven.