A mellékelt állományban példákat láthatunk az illesztésre, illetve a reguláris kifejezések objektumainak használatára.
Végrehajtási sorrend
Amikor létrehozunk egy reguláris kifejezést, akkor a kiértékelési folyamat az aritmetikai kifejezésekhez hasonlóan balról jobbra történik, a végrehajtási sorrend szerint.
Az alábbi tábla illusztrálja felülről lefelé a különféle reguláris kifejezések operátorainak végrehajtási sorrendjét:
| Operátorok |
Leírás |
| \ |
Escape |
| (), (?:), (?=), [] |
Zárójelek |
| *, +, ?, {n}, {n,}, {n,m} |
Összegzők |
| ^, $, \metakarakter |
Rögzítő elemek, sorozatok |
| | |
Választó |
A karakterek előrébb állnak a sorban, mint a választó operátor (|), amely lehetővé teszi "ny|kakas" esetén "ny" vagy "kakas" illesztését. Ahhoz, hogy, a "nyakas" vagy a "kakas" illesztését megadjuk, használjunk zárójelet, hogy alkifejezést tudjunk létrehozni, amely így néz ki ebben az esetben:"(ny|k)akas"
Általános karakterek
Az általános karakterek azokat a nyomtatható és nem nyomtatható karaktereket jelentik, amelyeket közvetlenül nem jelzünk meta-karakterekként. Ezek tartalmazzák mindegyik kis- és nagybetűs karaktert, számokat, pontot, pontosvesszőt, stb., és néhány szimbólumot.
A legegyszerűbb formátuma egy reguláris kifejezésnek egy egyszerű, általános karakter, amely illeszkedik önmagára egy keresett szövegben. Például az egykarakteres "A" minta illeszkedik az "A" betűre, amely a keresett szövegben megjelenik. Íme néhány példa az egykarakteres reguláris kifejezés mintákra:
Kombinálhatunk több egyedi karaktert, hogy azok nagyobb kifejezéssé álljanak össze.
Figyeljük meg, hogy nincs összegző operátor. Csak annyit kell tennünk, hogy valamennyi karaktert egymás mögé írjuk.
Számos meta-karakter létezik, amelyek speciális bánásmódot igényelnek, amikor megpróbáljuk illeszteni őket. Ahhoz, hogy ezeket a karaktereket illesszük, szükséges eléjük egy backslash karaktert helyeznünk. Ezek a karakterek a következők:
$ ( ) * + . [ ] ? \ / ^ { } |
Példák
A pont bármi lehet, kivéve az új sor karaktere. Ez megfelelhet pl. "abc", "a1c", "a#c" karaktersorozatoknak.
Ez megfelel a megadott fájlnév, ".", kiterjesztés karakterének. Így tudunk közvetlenül fájlra illeszteni.
Ez a sorozat megfelelhet az "1. fejezet", "2. fejezet", ..., "5. fejezet" karaktersorozatoknak.
Ez a minta illeszkedik bármely kis- és nagybetűs, valamint számokból álló karaktersorozatra.
Egy azonosító számra illeszkedik, amely két számjegyből, egy kötőjelből, majd újabb öt számból áll. A "\d" szám-karakterre illeszkedik, "{2}" jelentése az, hogy pontosan kétszer illeszkedik. A kötőjel egy általános karakter. Az újabb öt számnál hasonló a helyzet, mint az első kettőnél.
A RegExp objektum
A RegExp egy belső globális objektum, amely információkat tárol a reguláris kifejezések mintaillesztési eredményeiről.
Használata:
A RegExp objektum direktben nem hozható létre, de mindig elérhető aktuális használatra. Amíg egy tökéletes reguláris kifejezés mintaillesztése meg nem történik, addig a különféle tulajdonságok kezdeti értékei a következők lehetnek:
| Tulajdonság |
Rövidített |
Kezdeti érték |
Leírás |
| index |
nincs |
-1 |
Az első illeszkedés pozícióját adja vissza a keresett szövegben. |
| input |
$_ |
üres sztring |
Azt a szöveget adja vissza, amelyen a reguláris kifejezés-keresést kezdeményeztük. |
| lastIndex |
nincs |
-1 |
A következő illesztés pozíciója. |
| lastMach |
$& |
üres sztring |
Az utolsó illesztett karaktersorozatot adja vissza. |
| lastParen |
$+ |
üres sztring |
Az utolsó zárójeles illesztést adja vissza. |
| leftContext |
$` |
üres sztring |
A keresett szöveg eleje és az utolsó illesztés eleje közötti karaktersorozatot adja vissza. |
| rightContext |
$' |
üres sztring |
Az utolsó illesztést követő pozíció, és a szöveg vége közötti karaktersorozat. |
| $1-$9 |
$1-$9 |
üres sztring |
A legfrissebb kilenc tárolt szakaszt adja vissza, amelyet az illesztés talált. |
Ezek a tulajdonságok undefined értékűek egészen addig, amíg egy reguláris kifejezés illesztést végre nem hajtunk.
A globális RegExp objektumot ne keverjük össze a Regular Expression objektummal. Azt gondolnánk hangzás alapján, hogy ugyanarról a dologról van szó, azonban mégsem. A globális RegExp objektum tulajdonságai folytonosan változó információkat tartalmaznak minden illesztés alkalmával, amíg a Regular Expression objektum tulajdonságai csak arról az illesztésről tárolnak információkat, amely az objektum adott példánya esetében történt.
Regular Expression objektum
Egy olyan objektum, amely reguláris kifejezésmintákat tartalmaz a hozzájuk kapcsolható flag-ekkel, amelyek azonosítják, hogy hogyan történjen meg az illesztés.
Első fajta szintaxis:
Második fajta szintaxis:
re = new RegExp("minta",["flag-ek"])
A minták a következők lehetnek (kombinálhatók):
- g (global: globális keresés minden minta előfordulására)
- i (ignoreCase: kis- és nagybetűs különbségek figyelmen kívül hagyása)
- m (multiline: többsoros keresés)
A Regular Expression objektumok tárolják a mintákat, amelyeket keresünk. Miután a Regular Expression objektum létrejön, tartalma egyben átadódhat egy sztring műveletnek, vagy egy sztring átadásra kerülhet valamely reguláris kifejezés-műveletnek.
Használjuk az első szintaxist abban az esetben, ha már előre tudjuk a keresőszöveget. A második forma akkor eredményes, amikor a keresőszöveg gyakran változik, vagy ismeretlen, mint pl. amikor a felhasználói input-ból származik.
A minta a használat előtt fordítódik le. Az első szintaxis esetében a Script betöltésekor történik a fordítás. A második esetben a minta közvetlenül a használat előtt fordítódik le, vagy amikor a compile metódus meghívásra kerül.