HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Keresés szabályok alapján


Regular Expressions 1. rész

Példaprogram letöltése

8254 bájt

Sokszor kell megoldanunk olyan példákat, ahol keresnünk kell. Rengeteg időnket elveszi, hogy megfelelő keresési algoritmusokat hozzunk létre, főleg akkor, ha nem egy szót, hanem egy mintát keresünk, például egy telefonszámot. Ezekre a problémákra kínál megoldást a rendszer által kínált Regular Expressions használata.

A rendszer Regular Expressions szolgáltatását talán úgy tudnánk helyesen lefordítani, hogy általános kifejezések. Segítségével megadott minták alapján kereshetünk különböző szövegrészeket egy megadott szövegben. Legyen az egy egyszerű szó, vagy egy bonyolultabb telefonszám, vagy egy tetszőlegesen definiált minta.
A technológia sokkal gyorsabb programfejlesztést tesz lehetővé szövegfeldolgozással foglalkozó alkalmazásainkban.
A szolgáltatást a Microsoft Windows Script technológia tartalmazza, melynek legfrissebb változata ingyenesen letölthető az alábbi Microsoft oldalról:
http://msdn.microsoft.com/library/default.asp?url=/downloads/list/webdev.asp
A cikk írása pillanatában, jelenleg az 5.6-os verziónál tartunk. A megadott weboldalon különböző letöltési lehetőségeket találhatunk, operációs rendszerünknek megfelelően. Ha letöltöttük a telepítő programot, akkor telepítés után az automatikusan beépül rendszerünkbe. Az eléréséhez importálnunk kell egy Type Library-t.
Indítsuk el a Delphi-t, majd válasszuk a Project – Import Type Library menüpontot. A megjelenő listában válasszuk ki a Microsoft VBScript Regular Expressions 5.5 elemet. Állítsuk be a Unit dir name mezőben, hogy melyik mappában jöjjön létre az importált unit, majd kattintsunk a Create unit feliratú gombra.
Ekkor a megadott mappában létrejön a VBScript_RegExp_55_TLB.pas állomány. Ha alkalmazásainkban használni kívánjuk a Regular Expressions szolgáltatást, akkor a uses listában fel kell majd vennünk a hivatkozást erre a unitra.
A kiindulási osztály, amely segítségével a keresés és a csere funkciókat végrehajthatjuk, a TRegExp.
TRegExp
Global
property Global: WordBool;
Igaz érték megadása esetén a keresés a teljes szövegben történik, a találati listába pedig az összes találat bekerül. Ha értékét hamisra állítjuk, akkor a keresés az első találat után befejeződik.
IgnoreCase
property IgnoreCase: WordBool;
Igaz érték esetén a kis- és nagybetűk nem számítanak. Hamis érték megadása esetén igen.
Pattern
property Pattern: WideString;
Ebben a property-ben kell megadnunk a keresendő szöveget, vagy mintát.
Execute
function Execute(
const sourceString: WideString
): IDispatch;
Keresést hajt végre egy megadott szövegben.
Paraméterek
const sourceString: WideString
A szöveg, amelyben keresni szeretnénk.
Visszatérési érték
A találatok listája, melynek típusa MatchCollection. A kollekció eléréséhez típuskényszerítést kell alkalmaznunk.
m:=r.Execute(Memo1.Text) as MatchCollection;
Replace
function Replace(
const sourceString: WideString;
replaceVar: OleVariant
): WideString;
A keresés és csere funkció megvalósítására szolgál.
Paraméterek
const sourceString: WideString
A szöveg, amelyben keresni szeretnénk.
replaceVar: OleVariant
A minta, amelyre a találatokat cserélni szeretnénk.
Visszatérési érték
Az a szöveg, amely a már kicserélt találatokat tartalmazza.
Test
function Test(
const sourceString: WideString
): WordBool;
A függvény segítségével megtudhatjuk, hogy a keresett minta szerepel-e a megadott szövegben.
Paraméterek
const sourceString: WideString
A szöveg, amelyben keresni szeretnénk.
Visszatérési érték
Ha a keresett minta szerepel a szövegben, akkor igaz, ellenkező esetben hamis.

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 229. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |