Ugrás a fő tartalomra
Közepes Python2026-07-31 · 11 perc olvasás

Python Regex magyarázata (2026)

A Regex a Python legféltettebb funkciója. Ez nem olyan nehéz – de az oktatóanyagok 80%-a előre tölti az elméletet (\d, \w, mohó vs lusta), mielőtt megmutatna egyetlen mintát, amelyet a valós kódban valóban használna. Ez az oktatóanyag ezt megfordítja.

Kitérünk a következőkre: a "re" modul alapjai, az öt minta, amelyek a valódi munka 90%-át lefedik, amikor a "re.compile" valóban segít, a csoportok elnevezése vs. számozott, és a négy eset, amikor a regex a ROSSZ eszköz.

A modul 60 másodperc alatt

Minden az stdlib re modulban él. Három funkció elégíti ki a legtöbb igényt:

▶ PYTHONeditable · runs in your browser

Szabály: kétség esetén használja a "re.search" parancsot. re.match csak a kezdést ellenőrzi; ezt elfelejtve "nem egyezik a regexem!" 30 perc elveszett.

Nyers karakterláncok – mindig használja őket

r"..." előtag letiltja a fordított perjel értelmezését. Enélkül a "\d" "\\d" lesz a Pythonban, amit a regex motor "\d"-nek lát - ugyanaz az eredmény, de csak véletlenül, és csak a "\d"-re. A "\n" a regexben egy újsort jelent, nem pedig a két + n` karaktert.

▶ PYTHONeditable · runs in your browser

Izommemória: minden regex literál "r"-vel kezdődik. Nincs kivétel.

Az 5 minta, amely a valódi munka 90%-át lefedi

1. Kivonja az összes egész számot a szövegből

▶ PYTHONeditable · runs in your browser

Megjegyzés: A „199,99” a következőre oszlik: „['199”, „99”]” – a „\d+” nem húzza át a pontot. Használja az r"\d+(?:\.\d+)?" karaktert az opcionális tizedesjegyekhez:

▶ PYTHONeditable · runs in your browser

2. Normalizálja a szóközt

▶ PYTHONeditable · runs in your browser

A \s+ minden szóközök / tabulátor / újsorok futtatására alkalmas. Cserélje ki egyetlen szóközzel, vágja le a széleket. Ez a Python válasza a `sed -E 's/[[:space:]]+/ /g''-re.

3. Bontsa ki a gazdagépnevet egy URL-ből

▶ PYTHONeditable · runs in your browser

A zárójelek rögzítési csoportot hoznak létre; A .group(1) visszaadja a tartalmát. [^/:]+ = "egy vagy több karakter, amely nem / vagy :" — megáll a portelválasztónál VAGY az elérési útnál.

Éles URL-elemzéshez használja az „urllib.parse.urlparse” paramétert (a szélső eseteket kezeli, például a userinfo + IPv6). A Regex a gyors és piszkos elszívásra szolgál.

4. Laza e-mail-ellenőrzés

NINCS reguláris kifejezés, amely teljes mértékben érvényesíti az e-maileket az RFC 5322 szerint. Bárki, aki mást mond, elad valamit. De ez a valódi címek 99%-át elkapja anélkül, hogy hamisan utasítaná el a jó címeket:

▶ PYTHONeditable · runs in your browser

A horgonyok (^ és $) teljes karakterláncú egyezést kényszerítenek ki. Nélkülük a "foo@bar" egy nagyobb mondatban illene.

Gyártás: küldjön visszaigazoló e-mailt. Ez az EGYETLEN megbízható e-mail érvényesítő.

5. Elnevezett rögzítési csoportok

A számozott csoportok ((...) + .group(1)) megfelelőek 2-3 rögzítéshez. Ezen kívül a nevek nyernek:

▶ PYTHONeditable · runs in your browser

A .groupdict() az összes megnevezett csoport dictjét adja vissza. Adjon hozzá / rendezzen át csoportokat anélkül, hogy feltörne minden hívási webhelyet, amely a `.group(3)-ra hivatkozott.

re.compile — amikor valóban segít

▶ PYTHONeditable · runs in your browser

Az stdlib kis lefordított minta gyorsítótárat tart fenn (alapértelmezett méret 512), így az egyszeri "re.search(pattern, text)" hívások gyakorlatilag ingyenesek az első találat után. A "re.compile" kifejezetten segít, ha:

1. A mintát egy szűk hurkon belül használják (több millió gyufa).

2. A mintát modulszintű konstansként szeretné tárolni a grep-képességhez.

3. Szüksége van a .finditer(), .pattern, .flags-ra a lefordított objektumon.

Ne fordítsd túl. Minden modulszintű re.compile apró importidő költséggel jár.

Közös zászlók

▶ PYTHONeditable · runs in your browser

Kombinálja a |-vel: re.IGNORECASE | re.MULTILINE.

Amikor a regex ROSSZ eszköz

1. HTML / XML elemzése → használjon valódi értelmezőt

▶ PYTHONeditable · runs in your browser

A klasszikus Stack Overflow válasz 20 éves és még mindig igaz.

2. JSON elemzése → használja a `jsont'

A „json” modul kezeli a beágyazott idézőjeleket, a megtisztított karaktereket, a Unicode-kódot és minden RFC 8259 éles esetet. A Regex-elemző JSON egy mintaellenes jel.

3. Dátumok elemzése → használja a "dateutil" vagy a "datetime.strptime" parancsot

A dateutil.parser.parse("2026-07-30") minden formátumot elfogad, amelyet az ember beírhat. A datetime.strptime hatékonyan kezeli az ismert formátumokat. Mindkettő kezeli az időzónákat. A Regexnek újra fel kell találnia az egészet.

4. Beágyazott / rekurzív minták → használjon elemző generátort

Az egyező zárójelek, a beágyazott JSON, a kiegyensúlyozott kifejezések formálisan meghaladják a regex hatalmát (kontextusmentes nyelvtani terület). Használja a "pyparsing" / "lark" / "ANTLR" parancsot, vagy csak sétáljon a karakterláncon egy kis elemzővel.

Regex hibakeresés

Használja a regex101.com webhelyet (válassza a „Python” ízt). Illessze be a mintát + minta szöveget; valós időben kiemeli az egyezéseket, elmagyaráz minden metakaraktert, és megjeleníti a megnevezett csoportokat. A regex intuitív megtanulásának leggyorsabb módja.

A kódszintű hibakereséshez a "re.DEBUG" kiírja a lefordított állapotú gépet:

▶ PYTHONeditable · runs in your browser

Gyakorolj

Írjon mindegyikhez egy reguláris kifejezést. Megoldások lent.

1. Vegye ki a verziószámot a "Python 3.13.2 (fő, 2026. január 15., 10:32:11)" verzióból – a "3.13.2" értéket kell visszaadnia.

2. Ossza fel az "alma, banán; cseresznye narancs" szót bármely határolóra (", ", ";" vagy szóköz).

3. Írja át a „foo.bar_baz-123” karakterláncot „FOO.BAR_BAZ-123”-ra (csak nagybetűk, hagyjon meg számokat és írásjeleket).

Megoldások:

▶ PYTHONeditable · runs in your browser

A Regex szuperhatalom, ha túl vagy az első 10 mintán. A trükk az, hogy izommemóriát építsünk a fenti ötre – a valós munka 90%-át lefedik. Nyújtson valódi elemzőt abban a pillanatban, amikor azon kapja magát, hogy visszahivatkozásokat ír, hogy kiegyensúlyozza a zárójeleket.

Következő lépés: regex + szövegfeldolgozási leckék az automatizálási pályán – gyakoroljon naplófájlokat, CSV-adatokat és webes lemásolási feladatokat valódi Python futtatásával a böngészőben.

Készen áll a kipróbálására?

Ingyenes 15 óra ingyenes regisztráció után – kártya nélkül. Kísérje ki a platformot, majd döntse el.

Kezdje ingyen →

Or unlock every lesson

Pro — $12/mo, unlimited AI, cancel any time. Refund within 14 days worldwide.

See Pro plans →

Get one Python lesson + one career idea every Friday

No spam, no "buy our course now". Three bullets, every Friday. Unsubscribe with one click.