HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Keresési szabályok létrehozása


Regular Expressions 2. rész

Példaprogram letöltése

8244 bájt

Ebben a részben megismerkedünk a keresésekben használható három új osztállyal, valamint megnézzük, hogy milyen lehetőségeink vannak a keresési minták létrehozására.

Az előző részben láthattuk, hogy a TRegExp osztály az alapja a keresésnek. Amikor keresésnél az Execute metódust használtuk, szó volt róla, hogy a függvény egy kollekcióval tér vissza, melynek típusa MatchCollection. A kollekciót típuskényszerítéssel érhettük el.
m:=r.Execute(Memo1.Text) as MatchCollection;
A MatchCollection osztály
Count
property Count: Integer;
A találatok számát adja vissza.
Item
property Item[index: Integer]: IDispatch;
Ez a property egy tömb, amelyen keresztül a kollekcióban szereplő találatokat érhetjük el. A kollekció egyes elemei Match típusúak. Egy elem eléréséhez itt is típuskényszerítésre van szükség.
Item:=m.Item[i] as Match;
Egy találatot a Match osztály képvisel.
A Match osztály
FirstIndex
property FirstIndex: Integer;
A találat pozícióját adja vissza a szövegrészben, amelyben kerestünk.
Length
property Length: Integer;
A találat hosszát adja meg.
Value
property Value: WideString;
A találatban szereplő szövegrész.
SubMatches
property SubMatches: IDispatch;
A találaton belüli altalálatokat adja vissza. A property típusa SubMatches, melyet típuskényszerítéssel érhetünk el. A SubMatches osztály egy kollekció, melynek működése és felépítése megegyezik a MatchCollection osztályéval.
Keresési minták
Keresési minták definiálásakor megadhatunk egyszerű számokat vagy szavakat, de lehetőségünk van speciális karakterek használatára is. Az alábbi táblázatban ezeket a karaktereket és hatásukat foglaljuk össze.
Minta Hatása
\ A következő karaktert a speciális karakterjelzéssel látja el. Például a „\n” jelentése új sor. Ha a mintában a „\” karaktert akarjuk használni, akkor azt a „\\” formában kell megadnunk. A zárójelek használatához is ez a karakter szükséges: „\(„.
^ A bevitel elejét jelzi.
$ A bevitel végét jelzi.
* Az előtte álló karaktert ismétli, akárhányszor (ez 0 is lehet). Pl.: az „ot*” keresés eredményül adja az „ot” és az „ott” karaktersorozatokat egyaránt.
+ Az előtte álló karaktert ismétli egyszer, vagy többször. Maradva az előző példánál, ha a keresésbe az „ot+” mintát adjuk meg, akkor csak az „ott” szó jöhet számításba, az „ot” nem.
? Az előtte álló karaktert ismétli nullaszor, vagy egyszer.
. Bármilyen hagyományos karaktert helyettesíthet.
(kifejezés) A keresési minták elválasztására szolgál, lásd a következő példa.
x|y Az adott helyen vagy x vagy y szerepelhet. Például az „(e|me)gy” keresés az „egy” és a „megy” szavakat is egyaránt megtalálja.
{n} Az n egy nem negatív szám. Az előtte álló karakter ismétlődését jelenti pontosan n-szer. Pl.: az „ott{2}” keresés csak az „ottt” karaktersorozatot értékeli találatként.
{n,} Az n egy nem negatív szám. Az előtte álló karakter ismétlődését jelenti, legalább n-szer. Pl.: az „ott{2,}” keresés az „ottt” és az „otttt” karaktersorozatokat is egyaránt találatnak értékeli.
{n,m} Az n és m nem negatív számok. A kifejezés az előtte álló karakter ismétlődését jelenti legalább n-szer, de maximum m-szer.
[xyz] Az adott karakterhelyen a halmaz bármelyik karaktere szerepelhet.
[a-z] Az adott karakterhelyen a megadott intervallum bármely tagja szerepelhet.
[^xyz] Az adott karakterhelyen találatként értékel minden karaktert, amely nem szerepel a felsorolásban.
[^m-z] Az adott karakterhelyen találatként értékel minden karaktert, amely nem szerepel a megadott intervallumban.
\b Olyan szórészletek keresésére szolgál, amelyeket szóköz zár le. Pl.: a „gy\b” kifejezés eredményül adja az „egy” szónak a „gy” részét, de nem jelez találatot az „egyetlen” szó esetében.
\B Olyan szórészletek keresésére szolgál, amelyek után nem szóköz szerepel. Az előző példánál maradva, a „gy\B” kifejezés pont az ellentétes eredményt szolgáltatja.
\d Számjegy keresésére szolgál. Ugyanaz, mintha a [0-9] kifejezést használnák.
\D Nem számjegy keresésére szolgál.
\f Lapdobás karakter.
\n Soremelés karakter.
\r Kocsi vissza karakter.
\s Bármilyen szóköz keresésére használható, beleértve a tabulátort is.
\S Nem szóközök keresésére használható.
\t Tabulátor karakter.
\w Bármilyen szavakban szereplő karaktert kereshetünk vele, beleértve az aláhúzás jelt is. Ugyanaz, mint a "[A-Za-z0-9_]" kifejezés.
\W A „\w”-nek az ellenkezője. Ugyanaz, mint a "[^A-Za-z0-9_]" kifejezés.

Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 241. 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 |