< Python

Python regex

Szerző: Sallai András

Copyright © 2020, Sallai András

Szerkesztve: 2024

Licenc: 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: # <re.Match object; span=(0, 21), match='Esik az eső Miskolcon'>

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!')