Reguláris kifejezések
- Fajtái
- alap
- üres:
ɛ
(matematikailag) vagy üres szöveg (flex)
- egy betű:
a
- konkatenáció:
kk
- diszjunkció:
(k|k)
- iteráció:
k*
- képzett
k+
≡ kk*
k?
≡ (k|ɛ)
(mat.) vagy (k|)
(flex)
- flex továbbiak
[egyik]
≡ e|g|y|i|k
[c-x]
≡ c|d|...|x
.
egy tetszőleges karakter, kivéve \n
"abc"
szöveg, lehetnek benne escape szekvenciák: "\"\\"
\n
sorvége, \t
tabulátor, \\
visszaper, \"
idézőjel stb.
- Írd le reguláris kifejezéssel és véges, determinisztikus automatával.
- fehér szóközök (legalább egy a következőkből: szóköz, tab, sorvége jel)
- egész szám (legalább egy számjegy
0
–9
-ig)
- olyan egész szám, amely több számjegy esetén nem kezdődhet nullával
- előjeles egész szám (opcionális
+
vagy -
az elején)
- törtszám (tizedespont előtt legalább egy számjegy)
- azonosító (betűvel kezdődik, bárhány számmal, betűvel vagy
_
jellel folytatódik)
- egysoros megjegyzés
//
-től a sor végéig
- string (kicsit trükkös)
"idezojelek kozott barmilyen egyeb karakterek"
"specialis: a szoveg belsejeben \" vagy \\ is allhat"
- többsoros megjegyzés:
/*
-tól */
-ig (nagyon trükkös)
Csapatjáték.
- Lexikai elemző
- névvel ellátott reguláris kifejezések sorrendben
- működése: 2+1 szabály
- elsődleges: maximal munch: a leghosszabb illeszkedést választjuk
- több illeszkedő szabály között a sorrend dönt
- legalább egy karakternyit haladnunk kell