regular expression (tsz. regular expressions)
A reguláris kifejezés (angolul: regular expression, rövidítve regex vagy regexp) egy szövegmintázat leírására szolgáló formális eszköz, amelyet elsősorban karakterláncok keresésére, illesztésére, cseréjére és feldolgozására használnak. A reguláris kifejezéseket gyakran alkalmazzák programozásban, szövegszerkesztőkben, parancssorokban és adatfeldolgozás során.
A reguláris kifejezés egy speciális karakterlánc, amely egy vagy több mintát definiál.
"cat"
– pontosan a “cat” szóval egyezik meg."c.t"
– egyezik “cat”, “cut”, “c9t”, stb. szavakkal (a .
tetszőleges karakter)."a*b"
– 0 vagy több “a” betű, majd “b” (pl. “b”, “ab”, “aaab”).
Kifejezés | Jelentés | Példa | ||
---|---|---|---|---|
.
|
Bármely egyetlen karakter | c.t → “cat”
|
||
*
|
0 vagy több ismétlés | a* → ““,”aaa”
|
||
+
|
1 vagy több ismétlés | a+ → “a”, “aa”
|
||
?
|
0 vagy 1 ismétlés | a? → ““,”a”
|
||
|
Bármely karakter a zárójelben | → magánhangzó
|
||
|
Bármely karakter, kivéve ami a zárójelben van | → nem szám
|
||
( )
|
Csoportosítás (részminta) | (abc)+
|
||
` | ` | Vagy kapcsolat | `foo | bar` |
^
|
Sor eleje | ^A → “A-val kezdődik”
|
||
$
|
Sor vége | end$ → “end-re végződik”
|
||
\
|
Escape karakter (pl. \. jelentése: pont)
|
\. → “.”
|
Rövidítés | Jelentés | Egyenértékű |
---|---|---|
\d
|
Számjegy (digit) |
|
\D
|
Nem számjegy |
|
\w
|
Szókarakter (betű, szám, _) |
|
\W
|
Nem szókarakter |
|
\s
|
Fehér karakter (szóköz, tab, új sor) |
|
\S
|
Nem fehér karakter |
|
Cél | Regex példa | Mit illeszt? |
---|---|---|
Email-cím | \b+@+\.\w{2,}\b
|
[email protected] |
Telefonszám (HU) | \+36 ?\d{1} ?\d{3} ?\d{3}
|
+36 30 123 456 |
Irányítószám (4 számjegy) | \b\d{4}\b
|
1051 |
Dátum (YYYY-MM-DD) | \d{4}-\d{2}-\d{2}
|
2025-05-16 |
HTML címkék | <+>
|
<div> , <img src="...">
|
import re
text = "E-mail: [email protected]"
match = re.search(r"\w+@\w+\.\w+", text)
if match:
print("Találat:", match.group())
let text = "Tel: +36 20 123 4567";
let regex = /\+36\s?\d{1,2}\s?\d{3}\s?\d{3}/;
let match = text.match(regex);
console.log(match ? match : "Nincs találat");
grep -E '^.*$' szoveg.txt
Ez megkeresi azokat a sorokat, amelyek nagybetűvel kezdődnek és mondatzáró írásjellel végződnek.
A különböző környezetek eltérhetnek:
.
helyett \.
kell, ha tényleg pontot keresel.
Típus | Jelentés | Példa | Illesztés |
---|---|---|---|
Greedy | A lehető leghosszabb illesztés | <.*>
|
<html><body>
|
Lazy (nem mohó) | A lehető legrövidebb illesztés | <.*?>
|
<html>
|
regex101.com
(tanuláshoz), PyParsing
, ANTLR
.
A reguláris kifejezés egy rendkívül hatékony és tömör eszköz szöveges minták keresésére, ellenőrzésére és manipulálására. Megtanulása némi gyakorlást igényel, de elsajátítása után szinte bármilyen adatfeldolgozási feladatra alkalmazható: legyen szó naplófájlok elemzéséről, weboldalak szűréséről vagy adattisztításról.