PHP átvizsgáljuk a szekvencia

escape szekvenciák

Rep (# „\ #”) számos felhasználási. Először is, ha előtte egy nem alfanumerikus karakter, ez enyhítette a speciális jelentését, hogy talán van. Használata backslash, mint menekülés jellegű egyaránt vonatkozik a karakter osztály, valamint azon kívül.

Például, ha azt szeretnénk, hogy megfeleljen a karakter „*” a minta kell adnia a „\ *”. Ez megakadályozza a későbbi értelmezése a szimbólum, mint a metakaraktert egy speciális jelentése van. Ez mindig biztonságban, hogy elkerülje a nem alfanumerikus karaktereket „” Ha azt szeretnénk, hogy győződjön meg arról, hogy mit jelent egy sablon magukat. Abban a speciális esetben az összehasonlítás önmagával backslash, használja a rekordot. „”

PHP-line. zárt szimpla vagy dupla idézőjelek, a backslash van különféleképpen értelmezik. Ezért, ha azt szeretnénk, hogy megfeleljen \ \\ a kifejezés egy PHP-kód használata szükséges „\\” vagy # '# ​​\\\\'.

Ha ismert módosító PCRE_EXTENDED. szóközöket a minta (kívül a karakter osztály) nem veszi figyelembe. Szintén része a vonal figyelmen kívül hagyja, között található a „#” jel (megint nem vesznek részt a leírását a karakter osztály), és a következő soremelés karaktert. Ebben az esetben a backslash lehet használni, mint egy escape karakter azt jelzi előfordulását szóközök vagy „#” karaktert a mintát.

Hogy pontosabbak legyünk, a kombináció a „\ cx” a következőképpen értelmezzük: ha „x” - Kisbetűvel ez naggyá. Ezt követően, a hatodik bites karakter (hex 40) invertált. Így a "\ cz" értelmezi a hexadecimális értéket 1A, míg a "\ c" kap hexadecimális érték 3B, és a "\ c;" - 7B.

A „\ x” olvasni egy másik két számjegy (lehetnek írva kis- vagy nagybetűvel). Az UTF-8 módban. használhatja „\ x”, ha a tartalom a pántok egy karakterlánc hexadecimális számjegyből áll. Úgy értelmezi a szimbólum a UTF-8 karakter kódot egybeesik a hexadecimális szám. Az eredeti hexadecimális escape szekvencia \ xhh. Ez egybeesik egy kétbájtos UTF-8 karakter, ha az érték meghaladja a 127.

A „\ 0” olvasható két oktális. Amikor a felvétel legalább két számjeggyel, minden jelen használnak. Így a szekvencia „\ 0 \ x \ 07” meghatározza két bináris nullára majd egy figyelmeztető jel (Bell). Ha oktális kód, győződjön meg arról, hogy a kezdeti nulla, majd két számjeggyel.

Bent a karakter osztály, vagy ha a kapott érték nagyobb, mint 9, és a megfelelő számú előzetes elérhető részminták, PCRE olvas legfeljebb három oktális követő backslash, és létrehoz egy byte a legkevésbé szignifikáns 8 bit értékét. Minden ezt követő számjegy magukért. Például:

Emlékeztetni kell arra, hogy a nyolcas érték 100 vagy ennél nagyobb kell, hogy legyen egy nullát, mert nem tovább, mint három oktális.

Minden szekvencia meghatározásához egyetlen byte értéket lehet használni belül és kívül egyaránt a karakterosztály. Ezen kívül, belül egy karakterosztály, a sorozat "\ b" értelmezi a visszatérő szimbólum (# 'backspace #', hex 08). Ez egy karakter osztály van egy különböző értéket (amelyet az alábbiakban ismertetünk).

A harmadik használatát backslash - meghatározza az általános jellegű típusok:

\ D bármilyen tizedes számjegy \ D bármilyen karakter, ami nem egy számjegye \ h horizontális üres karakterrel (a PHP 5.2.4 verzió) \ H bármely karakter, ami nem vízszintes whitespace karaktert (verzió óta PHP 5.2.4) \ s bármilyen whitespace karakter \ S bármilyen nem üres karakterrel \ v leges whitespace (verzió PHP 5.2.4) \ V bármilyen karakter, ami nem egy függőleges térköz (verzió PHP 5.2.4) \ w bármely szimbólum "szó" \ W Minden karakter, ami „nem szó”

Minden pár escape szekvenciák felosztja a teljes karakterek két diszjunkt. Minden szimbólum felel meg egy és csak egy sor a pár.

A következő szimbólumot úgy tekintjük, mint "white space": HT (9), LF (10), FF (12), CR (13), és egy teret (32). Azonban, ha ez hely-specifikus kereső, és lesz egy meccset a karakterek tartományban 128-255, akkor felfogható fehér térben, például NBSP (A0).

Szimbólum, a „szó” - egy tetszőleges szám, egy levelet vagy egy aláhúzás karaktert, vagyis minden olyan képességgel, amely része lehet a „szó”, a Perl. A meghatározás betűk és számjegyek irányított karakter táblázatokat, amelyekben gyűjtötték PCRE. Ennek következtében ezek a készletek eltérnek egy lokalizált eloszlás. Például a locale „fr” (Franciaország), néhány karakter kódok nagyobb mint 128 használt ékezetes és ezek kiegyenlített \ w.

Ezek a karakter típus használható belül és kívül egyaránt a karakter osztály, és megfelelnek a karakter típus. Ha az aktuális összehasonlítás pont a sor végére, egyikük nem lesz képes, hogy egyeznek meg, mivel nincs jel, ami megtörténhet véletlen.

A negyedik használata backslash - meghatározását néhány formai leíró állításokat feltételek elhelyezkedésére vonatkozó konkrét helyzetben a sorban, és nem befolyásolja a karakterek maguk. Egy bonyolultabb részminták hivatalos nyilatkozatok az alábbiak szerint. Az ilyen kontroll szekvenciák:

\ B szó határoló \ B nem szóhatárt \ A Start adat (függetlenül attól, többsoros mód) \ Z végén az adatok vagy a helyzetben, mielőtt az utolsó sor takarmány (függetlenül attól, többsoros módnál) \ z adatok vége (függetlenül attól, többsoros mód) \ G első illeszkedő pozíciót a húr

Ezek az állítások nem jelenhetnek meg a karakterosztály (de vegye figyelembe, hogy a „\ b”, amely egy osztály jelképe a visszatérés # 'Backspace #').

Egy szó határvonal a pozícióját a vonalat, ahol a jelenlegi és az előző karakter felel meg egyetlen \ w vagy \ W (azaz egy meccsek \ w. És a másik \ W). Elején vagy végén a vonal is megfelelnek a szót limit esetén az első, ill utolsó karaktere megegyezik \ w.

Különleges szekvencia \ A. \ Z és \ z különböznek a hagyományos ékezettel és a dollár húrok # ^ # És a sor végére # „$ #” (Szakaszban leírt horgonyok), hogy azok mindig felelnek meg sem az elején vagy a végén a sorban. Nem érintik PCRE_MULTILINE és PCRE_DOLLAR_ENDONLY opciót. A különbség \ Z és \ z hogy \ Z meccsek előtt, az utolsó karakter, ha az utolsó karakter - új sor, kivéve a sor végére. Abban az időben, mint a \ z meccsek csak a végén.

Állítás \ G csak akkor igaz, ha az aktuális pozíció ellenőrizhető elején a mérkőzés, a megadott paraméterek offset preg_match () függvényt. Abban különbözik a \ a nulla értéket, ha a paraméter eltolás.

\ Q és \ E lehet használni hogy figyelmen kívül hagyja MetaSymbols reguláris kifejezés minta. Például: .. \ W + \ Q $ \ E $ egybeesik egy vagy több karaktert teszik ki a „szó”, majd a $ jel .. és rögzíti a sor vége.

A szekvencia \ K lehet használni, hogy állítsa vissza a mérkőzés kezdete óta verzió PHP 5.2.4. Például a foo \ kbar minta egybeesik a „foobar”, de a jelentés, amely egybeesett az egyetlen „bar”. Használata \ K nem zavarja telepítése részminták. Például, ha a minta (foo) \ kbar egybeessen a string „foobar”, az első részsztring továbbra is „valami”.

Felhasználói megjegyzések jelenléte 7 jegyzetek

Kapcsolódó cikkek