A mintákról

A minta nem más, mint karakterek egy sorozata, amelyre az indexben található szavak vagy illeszkednek vagy nem. Például a "kutya" szó illeszkedik a k..ya mintára, de nem illeszkedik a k[^u]tya kifejezésre, míg a "macska" szó ezek egyikére sem illeszkedik.

Mintákat a Minta lekérdezése illetve a Szó lekérdezése párbeszédpanelekben használhatunk. Ilyenkor minden az indexben található illeszkedő kifejezés a találati halmaz eleme lesz (és csak ezek).

A minták létrehozásában háromféle karakterosztályt használhat:

Speciális karakterek és metakarakterek

A pont (.) tehát egy olyan karakter, amely bármilyen betűszerinti karaktert helyettesíthet. Például a a... minden olyan négybetűs szóra illeszkedik, amely a-val vagy A-val kezdődik.

A [szögletes zárójelek] között lévő karakterek közül pontosan egynek kell illeszkednie. Így például a p[aeiou]kk minta a "pakk" "pekk" "pikk" "pokk" "pukk" szavak mindegyikére illeszkedne (ha korpuszunk az összeset tartalmazná).

Egy karaktersorozat tartalmazhat kötőjelet is, ha egy tartományt akarunk kifejezni. A [0-9] és a [0123456789] kifejezések például ekvivalensek: mindketten pontosan ugyanazokra a karakterekre, vagyis az egyjegyű számokra illeszkednek.

A karakterek és a szögletes zárójelbe tett karaktersorozatok szükségszerint megismételhetőek, így összetett mintákat hozhatunk létre. A [0-9][0-9][0-9] minta például az összes háromjegyű számra illeszkedik, így a 876-ra és a 382-re is, míg a 12-re vagy a 103878-ra nem. A m[0-9][0-9] egy m-mel kezdődő és további két számjegyet tartalmazó karaktersorozatra illeszkedik, ilyen például az M52 vagy az m13.

A háztető (^) egy speciális karakter. Szögletes zárójelen belül található karaktersorozatok elején fordulhat elő. Azt jelenti, hogy az illeszkedő sztring nem tartalmazhat a szögletes zárójelben megadott karakterek közül egyet sem. Néhány példa: a [^aeiou] bármilyen karakterre illsezkedhet, ami nem a, e, i, o vagy u; a [^0-9] minta pedig minden olyan karakterre illeszkedik, amely nem számjegy.

A kérdőjel (?) egy olyan speciális karakter, amely egy egyszeres karaktert vagy egy szögletes zárójelben lévő karaktersorozatot követhet. Azt jelenti, hogy az őt megelőző karakter opcionális. Tehát a "szín" szóra illeszkedő sz?ín minta egyúttal a "sín" szóra is illeszkedik. A [0-9][0-9][0-9]? pedig mind a kétjegyű, mind a háromjegyű számokra illeszkedik.

A csillag (*) egy olyan speciális karakter, amely - csakúgy mint a kérdőjel - egy egyszeres karaktert és egy szögletes zárójelben lévő karaktersorozatot is követhet. Azt jelenti, hogy az előtte található karakter tetszés szerint megismételhető, a nullát is beleértve. Így például a mi[áú]* minden olyan "mi"-vel kezdődő szóra illeszkedni fog, amelyekben ezt az "á" és "ú" hangok tetszőleges kombinációja követi (függetlenül attól, hogy a szó milyen hosszú). Így a fenti minta illeszkedni fog a "mi", a "miá" a "miú" szavakra, csakúgy, mint a "miááááúúúúú" és a "miáúááúúáááúúúá"-ra. Az ember.* pedig az összes "ember"-rel kezdődő szóra illeszkedik: "ember", "emberes", "emberség", "emberségességes", stb.

A pluszjel (+) egy olyan speciális karakter, amely - csakúgy mint a többi ismétlést kifejező karakter - egy egyszeres karaktert és egy szögletes zárójelben lévő karaktersorozatot is követhet. Azt jelenti, hogy az előtte álló karaktert legalább egyszer ismételnünk kell. Így a fenti példáknál maradva az ember.+ minta minden olyan sztringre illeszkedik, amely az "ember" karaktersorozattal kezdődik, kivéve magát az "ember" sztringet. A mi[áu]+ pedig nem fog illeszkedni a "mi"-re, a legrövidebb illeszkedő sztring a "miá" vagy a "miú" lesz (de ettől eltekintve a pluszjellel ugyanolyan karaktersorozatok generálhatók, mint a csillaggal).

A .* és .+ kombinációkat ajánlatos mindig csak a karaktersorozat végén használni. Ha ezeket a karakterkombinációkat nem a minta végén használná, nem találna egy illeszkedő szót sem. (Ez azért van, mert a .+ és a .* karakterkombinációk mindig lefedik a szó végét és a minta végén szereplő karakterek illesztésére már nem kerülhet sor. Így például, ha az em.*er mintát kívánnánk illeszteni, a minta elején található betűszerinti karakter illeszkedik az "ember" szóban az "em" karaktersorozatra, a .* illeszkedik a szóban található többi karakterre, így nem lesz olyan szó a Xaira indexben, amely a többi karakteren kívül még további karaktereket - például egy "er"-t - tartalmazna.)

Két vagy több minta kombinálható: a függőleges vonal (|) segítségével diszjunkciót hozhatunk létre. Így például a söprű|seprű minta mindkét a mintában szereplő szóra illeszkedni fog. Zárójeleket használhatunk a minta egyes részeinek csoportosítására: a fenti mintával megegyező találatokat eredményez a s(ö|e)prű.

Minden karakter betűszerinti értelmében fordul elő a mintában, ha előtte backslash (\) áll. Így tehát a 17?\. a "17."-ra vagy a "1."-ra fog illeszkedni és nem a "173"-ra vagy a "17F"-re. A backslash-nek tehát a meta- és speciális karakterek esetén van nagy jelentősége. Szükségtelen a backslash használata szögletes zárójelek esetén: a 1[7.]* minta is illeszkedik mind az "1."-ra, mind az "17."-ra is.