[[oktatas:programozás:python|< Python]]
====== Python regex ======
* **Szerző:** Sallai András
* Copyright (c) 2020, Sallai András
* Szerkesztve: 2024
* 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)
===== Szám vizsgálata =====
import re
numStr = input('Szám: ')
res = re.match(r'[0-9]+', numStr)
if res:
print('Ez egy szám')
else:
print('Hiba! Nem számot írtál!')