[[oktatas:programozás:python|< Python]] ====== Python regex ====== * **Szerző:** Sallai András * Copyright (c) 2020, Sallai András * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]] * Web: https://szit.hu ===== re ===== A Python RegEx használatát, a mintakeresést, az re mudul biztosítja. Importálása: import re ===== Keresés ===== Van egy szövegünk, amiben szeretnénk bizonyos mintákat megtalálni. Például a Hatvan szót előfordulását keressük, a sorok végén. import re txt = "Tegnap Marika elment Egerbe" res = re.search(r"Mar(ika|git)", txt) if res != None: print(res.start()) # None értéket kapunk, ha nincs egyezés # Ha van egyezés: # ===== Regex kifejezések ===== * . * A pont bármilyen karakter jelölhet, kivéve az újsor. * ^ * A keröt karakter a sor elejére egyezést jelöl. * $ * A dollárjel karakter a sor végére egyezést jelöl. * * * A csillag karakter egy sokszorzó. * Az előtte lévő karakter 0-szor vagy többször szerepelhet. * + * A plusz karakter egy sokszorozó. * Az előtte lévő karakter 1-szer vagy többszerö szerepelhet. * ? * A kérdőjel az előtte lévő karakterre vonatkozik. * Az előtt lévő karakter 0-szor vagy 1-szer szerepelhet. * {m} * Az előtte lévő karakter pontosan m-szer. * {m,n} * Az előtte lévő karakter minimum m-szer, maximum n-szer. * \ * Ha speciális karakterre hivatkozunk, mint a (.) pont, * akkor egy (\) karakter szükséges hozzá. * [ ] * Egy karakter meghatározása egy karakterhalmaz alapján. * ( ) * Csoportosítás. * \b * Üres sztringre egyezik. * \d * Mint a [0-9] halmaz * \D * Mint a [^0-9] halmaz * \s * Mint a [ \t\n\r\f\v] halmaz. * \S * Mint a [^ \t\n\r\f\v] halmaz. ===== IP cím ellenőrzés ===== IP cím ellenőrzése: import re print("Regex teszt") ipcim = input("Ip cím: ") egyezik = re.match(r'^([0-9]{1,3}\.){3}[0-9]{1,3}$', ipcim) if egyezik: print("Ez valószínűleg IP cím") else: print("Nem IP cím!") ===== Jelző használata ===== p = re.compile('ab*', re.IGNORECASE)