Mivel nem nagyon találtam még érthető leírást a regular expressions azaz a reguláris kifejezés nevű jóságról, és eleinte eléggé nehéznek tűnik, gondoltam írok pár dolgot rólaA reguláris kifejezés lényege, hogy sokkal egyszerűbben tudunk feltételt szabni bizonyos dolgokra. Tehát egy szövegből egy soros regex segítségével ki tudunk nyerni nekünk megfelelő információkat. Minden keresést a / jellel kezdünk meg, és ezzel is fejezzük be. Az alábbi reguláris kifejezéseket PHP-ben próbáltam ki. A leginkább használatos reguláris kifejezéssel működő függvények PHP-ben:
preg_match();
preg_replace();
Először az ún. metakaraktereket szeretném bemutatni, mert ez a későbbiekben a leglényegesebb rész.
mk.
használat módja
példa
|
A vagy karakter. Kettőnél több feltéltel esetén használandó.
/bunkó|büdös/
\
Az elrejtő karakter. A karakter elé kell helyezni, ha a keresésen belül olyan karaktert szeretnél használni, amely foglalt.
/\|/ (a '|' karaktert találja)
[ ]
Osztályok megadása
[abc] (az 'a','b' vagy 'c' karaktert találja meg) [a-c] (az 'a' és 'c' karakterek között található karaktereket találja meg
( )
Csoportosítás. A találatokat megjegyzi, és sorrendben a \1 illetve $1 értékekkel lehet rájuk hivatkozni.
(bunkó|gyökér|tapló) ($1 > bunkó)
.
Minden új sorban lévő találatot figyel.
/./
*
Bizonyos karakter, bármilyen mennyiségben valók keresése
/Hello*/ bármennyi 'o' karakter talált.
$
Egy karakterlánc végén megadva, csak az új sor előtti adott karakterláncot találja.
/izébizé$/ (az olyan karakterláncot találja, melynek utolsó része az 'izébizé'
^
Működése hasonló a $-hez, de itt a karakterlánc elejét figyeli. Osztály esetén tiltást jelent!
/^bunkó/ (az olyan karakterláncot találja, mely 'bunkó'-val kezdődik.) /[^e]/ (olyan találatot ad, amiben nincsen 'e'.
Egyelőre ennyit tudok elmondani. Ha van valami baki, szóljatok bátran. Remélem hasznát veszi valaki :)
A felhasznált forrás található.
Kommentek
A bejegyzéshez érkezett kommentek, amiket RSS csatornán is követhetsz.
Mefi: nincs még nekem értékelhető végzettségem, csak próbálkozok egyelőre, hogy valamikor legyen.
Egyébként php-ben nem, de junikszos shellben találkoztam ilyenekkel eddig. Nem azért mondtam, hogy nem írhatsz ilyenekről, csakhát Balázsnál úgyis előbb-utóbb találkozok vele, tőle meg ez is teljesítmény lenne. Tőled azonban többet várok :D