Reguláris kifejezések mesterfokon
Szerző:
Jeffrey E. F. Friedl
Kiadó:
Kossuth
Kiadás éve:
2003
ISBN:
963 09 4490 1
Oldalak száma:
484
Értékelés:
9
"Synopsis: must have." - ha dönteni akarsz, ennyiben össze tudom foglalni e könyvvel kapcsolatos tudnivalókat. Ez a könyv hiánypótló, ugyanis a reguláris (mintaillesztő) kifejezéseket nem a szokásos, - a könyv szóhasználata szerinti - "alulnézetből" mutatja be, hanem átfogó képet fest azok elméletéről, működéséről és használatáról.
Ugyanis, ahogy a programozás sem a vezérlési szerkezetek és függvények ismerete csupán, mert a regex szakszerű használata is megkívánja, hogy megértsük a mögötte meghúzódó elméletet és az alkalmazási környezetet is. Az első három fejezet az elméleti alapozás és az egyperces mintapéldák furcsa keveréke, ami az első oldalakon talán vontatottnak tűnhet, de megéri már itt is figyelni, sok apró részlet szokás elsikkadni azoknak, akik már valamennyire ismerik a regexeket. A szerző továbbiakban pedig ragyogóan adagolja a legfőbb koncepció részleteit, a regex-elméletet, és támasztja alá ezeket példákkal, mindvégig figyelve arra, hogy ne maradhasson az olvasóban egyetlen megválaszolatlan kérdés sem. A könyv azonban nem egyszerűen egy jól megírt referencia, amit a megfelelő oldalon felütve akkut problémáinkra megoldást találunk. A közismert hasonlattal élve
A középső három fejezet adja a könyv mondanivalójának magját. Először a 4. fejezetben gyakorlati szemszögből vizsgáljuk a regex-motorok tényleges munkájának fontos belső mechanizmusait, hogyan milyen lépések során dől el, hogy a minta illeszkedik-e vagy sem. Az itt megszerzett tudásunkat aztán az 5. fejezet ("Gyakorlati regex technikák") alatt próbálhatjuk ki a gyakorlatban, aminek elsődleges célja a tudás elmélyítése.
Összeségében a könyvben az oldalak számához viszonyítva nem sok (de nem is kevés!) példát találunk, azonban ezek mindegyike valós igényeket elégít ki. A megértést és a tudás elsajátítását jelentősen segíti, hogy a példákra a megoldásokat nem készen kapjuk, hanem fejezet(ek)en átívelő gondolatmenet során, kitérőkkel - néhol zsákutcákkal - tűzdelt úton jutunk el azokhoz a "szerzővel együtt gondolkodva". Ez a tanító jellegű, de folyékony, néhol humoros tárgyalásmód a biztosítéka annak, amit könyv címe ígér. (Az angol cím ezt jobban sugallja: "Mastering Regular Expressions".) A tipikus feladatokra alkalmazható regexeket természetesen így is könnyű megtalálni a tárgymutató vagy a tartalomjegyzék alapján a programforrásokkal együtt.
Bár a példák zöme Perl nyelven íródott, ez a legkevésbé sem hátráltatja azok megértését. A három utolsó fejezet rendben a Perl, Java és a .Net regextámogatásával foglalkozik, ám ezeket is könnyű megérteni és hasznos információkat találni. (Tapasztalatból mondom, ugyanis én nem ismerem elég jól sem a Perl-t sem a Java-t sem a .Net-et.) Ezeknek a fejezeteknek az elolvasása azért is hasznos, mert így még könnyebb szétválasztani a regex koncepcióját a megvalósítások specialitásaitól.
Végül szeretném kiemelni a tördelés és az illusztrációk magas színvonalát és következetességét. Ezek mind nagyban hozzájárulnak ahhoz, hogy az ismeretek könnyen elsajátíthatók. Külön öröm, hogy magyar nyelven a könyv második, teljesen átdolgozott kiadását lapozhatjuk. Jeffrey Friedl részletes előszavát (kb. 6 oldal) mindenképpen érdemes elolvasni a vásárlás előtt – már csak ízelítőül –, de a bennünk kialakult képtől függetlenül minden webfejlesztőnek meg kell vennie, és el kell sajátítani a benne foglalt „tananyagot”!
■ A reguláris kifejezések egy gondolat. [...] Ha elsajátítjuk a reguláris kifejezések általános koncepcióját, egy adott megvalósítás megértése már nem túl nagy feladat.(előszó) - ezt a célt maradéktalanul teljesíti.
Ugyanis, ahogy a programozás sem a vezérlési szerkezetek és függvények ismerete csupán, mert a regex szakszerű használata is megkívánja, hogy megértsük a mögötte meghúzódó elméletet és az alkalmazási környezetet is. Az első három fejezet az elméleti alapozás és az egyperces mintapéldák furcsa keveréke, ami az első oldalakon talán vontatottnak tűnhet, de megéri már itt is figyelni, sok apró részlet szokás elsikkadni azoknak, akik már valamennyire ismerik a regexeket. A szerző továbbiakban pedig ragyogóan adagolja a legfőbb koncepció részleteit, a regex-elméletet, és támasztja alá ezeket példákkal, mindvégig figyelve arra, hogy ne maradhasson az olvasóban egyetlen megválaszolatlan kérdés sem. A könyv azonban nem egyszerűen egy jól megírt referencia, amit a megfelelő oldalon felütve akkut problémáinkra megoldást találunk. A közismert hasonlattal élve
[ez a könyv] megtanítja az éhes olvasót halat fogni, ahelyett hogy kifogná helyette.
A középső három fejezet adja a könyv mondanivalójának magját. Először a 4. fejezetben gyakorlati szemszögből vizsgáljuk a regex-motorok tényleges munkájának fontos belső mechanizmusait, hogyan milyen lépések során dől el, hogy a minta illeszkedik-e vagy sem. Az itt megszerzett tudásunkat aztán az 5. fejezet ("Gyakorlati regex technikák") alatt próbálhatjuk ki a gyakorlatban, aminek elsődleges célja a tudás elmélyítése.
Összeségében a könyvben az oldalak számához viszonyítva nem sok (de nem is kevés!) példát találunk, azonban ezek mindegyike valós igényeket elégít ki. A megértést és a tudás elsajátítását jelentősen segíti, hogy a példákra a megoldásokat nem készen kapjuk, hanem fejezet(ek)en átívelő gondolatmenet során, kitérőkkel - néhol zsákutcákkal - tűzdelt úton jutunk el azokhoz a "szerzővel együtt gondolkodva". Ez a tanító jellegű, de folyékony, néhol humoros tárgyalásmód a biztosítéka annak, amit könyv címe ígér. (Az angol cím ezt jobban sugallja: "Mastering Regular Expressions".) A tipikus feladatokra alkalmazható regexeket természetesen így is könnyű megtalálni a tárgymutató vagy a tartalomjegyzék alapján a programforrásokkal együtt.
Bár a példák zöme Perl nyelven íródott, ez a legkevésbé sem hátráltatja azok megértését. A három utolsó fejezet rendben a Perl, Java és a .Net regextámogatásával foglalkozik, ám ezeket is könnyű megérteni és hasznos információkat találni. (Tapasztalatból mondom, ugyanis én nem ismerem elég jól sem a Perl-t sem a Java-t sem a .Net-et.) Ezeknek a fejezeteknek az elolvasása azért is hasznos, mert így még könnyebb szétválasztani a regex koncepcióját a megvalósítások specialitásaitól.
Végül szeretném kiemelni a tördelés és az illusztrációk magas színvonalát és következetességét. Ezek mind nagyban hozzájárulnak ahhoz, hogy az ismeretek könnyen elsajátíthatók. Külön öröm, hogy magyar nyelven a könyv második, teljesen átdolgozott kiadását lapozhatjuk. Jeffrey Friedl részletes előszavát (kb. 6 oldal) mindenképpen érdemes elolvasni a vásárlás előtt – már csak ízelítőül –, de a bennünk kialakult képtől függetlenül minden webfejlesztőnek meg kell vennie, és el kell sajátítani a benne foglalt „tananyagot”!