pgerzson Sat Dec 29 19:09:39 2001 EDT Modified files: /phpdoc/hu/functions pcre.xml Log: enumarating special character within preg-quote is already in CDATA section in HU translation, please don't remove it and modify it with care
Index: phpdoc/hu/functions/pcre.xml diff -u phpdoc/hu/functions/pcre.xml:1.9 phpdoc/hu/functions/pcre.xml:1.10 --- phpdoc/hu/functions/pcre.xml:1.9 Fri Dec 21 11:54:40 2001 +++ phpdoc/hu/functions/pcre.xml Sat Dec 29 19:09:39 2001 @@ -1,21 +1,21 @@ <?xml version="1.0" encoding="iso-8859-2"?> -<!-- EN-Revision: 1.67 Maintainer: pgerzson Status: ready --> +<!-- EN-Revision: 1.68 Maintainer: pgerzson Status: ready --> <reference id="ref.pcre"> <title>Reguláris kifejezések függvényei (Perl kompatibilis)</title> - <titleabbrev>PCRE</titleabbrev> + <titleabbrev>PCRE</titleabbrev> <partintro> <para> - Ezekben a függvényekben használatos minták szintaktikája nagyon - hasonlít a PERL-ben megismerthez. A kifejezéseket határolójelek + Ezekben a függvényekben használatos minták szintaktikája nagyon + hasonlít a PERL-ben megismerthez. A kifejezéseket határolójelek közé kell rakni, például perjelek / közé. Az alfanumerikus karakterektől és a visszaperjeltől (\) eltekintve bármi használható határolójelként. Ha a - határolójel magában a kifejezésben is szerepel, akkor egy visszaperjelet + határolójel magában a kifejezésben is szerepel, akkor egy visszaperjelet (\) kell eléírni. A PHP 4.0.4-s verziójától kezdve lehetőség van a (), {}, [], és <> párban álló határolók használatára, ahogy Perl-ben is. </para> <para> - A lezáró határolójelet különféle módosítók követhetik, amelyek a + A lezáró határolójelet különféle módosítók követhetik, amelyek a mintailleszkedést befolyásolják. Bővebben: <link linkend="pcre.pattern.modifiers">Minta módosítók</link> fejezet. </para> <para> @@ -53,7 +53,7 @@ </para> <note> <simpara> - A Perl kompatibilis reguláris függvények PHP4-től és PHP 3.0.9-től + A Perl kompatibilis reguláris függvények PHP4-től és PHP 3.0.9-től hozzáférhetők. </simpara> <simpara> @@ -64,7 +64,7 @@ </simpara> </note> </partintro> - + <refentry id="function.preg-match"> <refnamediv> <refname>preg_match</refname> @@ -77,25 +77,25 @@ <funcdef>int <function>preg_match</function></funcdef> <paramdef>string <parameter>pattern</parameter></paramdef> <paramdef>string <parameter>subject</parameter></paramdef> - <paramdef>array + <paramdef>array <parameter><optional>matches</optional></parameter> </paramdef> </funcprototype> </funcsynopsis> <para> - A <parameter>subject</parameter> szövegben egyezést keres a + A <parameter>subject</parameter> szövegben egyezést keres a <parameter>pattern</parameter> mintában megadott reguláris kifejezéssel. </para> <para> - Ha a <parameter>matches</parameter> paraméterrel hívod meg, akkor a - keresés végeredményét ebbe tárolja el a függvény. A $matches[0] - tartalmazza azt a szövegrészt, ami a teljes mintára illeszkedett, és a - további elemek ($matches[1] és így tovább) azokat, amelyek a tömbindex + Ha a <parameter>matches</parameter> paraméterrel hívod meg, akkor a + keresés végeredményét ebbe tárolja el a függvény. A $matches[0] + tartalmazza azt a szövegrészt, ami a teljes mintára illeszkedett, és a + további elemek ($matches[1] és így tovább) azokat, amelyek a tömbindex szerinti "gyűjtő" részmintákra illeszkedtek. </para> <para> - Ez a függvény &true;-val tér vissza, ha a <parameter>pattern</parameter> - mintát sikerült illesztenie a <parameter>subject</parameter> szövegre, + Ez a függvény &true;-val tér vissza, ha a <parameter>pattern</parameter> + mintát sikerült illesztenie a <parameter>subject</parameter> szövegre, egyébként - sikertelen illesztés vagy hiba esetén - &false;-szal. </para> <para> @@ -103,7 +103,7 @@ <title>A "php" sztring keresése</title> <programlisting role="php"> <![CDATA[ -// az "i" a minta határolójele után azt jelzi, +// az "i" a minta határolójele után azt jelzi, // hogy a kis- és nagybetűkre közömbös a keresés. if (preg_match ("/php/i", "PHP a web-scripting nyelvek egyike.")) { print "A minta passzol."; @@ -118,9 +118,9 @@ <programlisting role="php"> <![CDATA[ // a mintában a \b szóhatárt jelöl, ezért csak a különálló -// "web" szavakra fog illeszkedni, és szórészletekre +// "web" szavakra fog illeszkedni, és szórészletekre // úgymint "webbing" vagy "cobweb" pedig nem. -if (preg_match ("/\bweb\b/i", "PHP a web scripting nyelvek egyike.")) +if (preg_match ("/\bweb\b/i", "PHP a web scripting nyelvek egyike.")) { print "A minta passzol."; } else { @@ -156,7 +156,7 @@ </screen> </para> <para> - Lásd még: <function>preg_match_all</function>, + Lásd még: <function>preg_match_all</function>, <function>preg_replace</function> és <function>preg_split</function>! </para> @@ -176,19 +176,19 @@ <paramdef>string <parameter>pattern</parameter></paramdef> <paramdef>string <parameter>subject</parameter></paramdef> <paramdef>array <parameter>matches</parameter></paramdef> - <paramdef>int + <paramdef>int <parameter><optional>order</optional></parameter> </paramdef> </funcprototype> </funcsynopsis> <para> - A <parameter>subject</parameter> szövegben megkeresi az összes, a + A <parameter>subject</parameter> szövegben megkeresi az összes, a <parameter>pattern</parameter> mintára illeszkedő - részt, és a <parameter>matches</parameter> tömbbe menti azokat az + részt, és a <parameter>matches</parameter> tömbbe menti azokat az <parameter>order</parameter> paraméterben meghatározott sorrendben. </para> <para> - Amint az első illeszkedés megtalálta, a soron következő illesztést az + Amint az első illeszkedés megtalálta, a soron következő illesztést az utolsó illeszkedés végétől folytatja. </para> <para> @@ -198,21 +198,21 @@ <term>PREG_PATTERN_ORDER</term> <listitem> <para> - Azt eredményezi, hogy a $matches[0] olyan tömb lesz, ahol az összes a - teljes mintára illeszkedő szövegrész lesz egymás után, a $matches[1] - tömbben pedig azok a szövegrészek, amelyek első "gyűjtő" + Azt eredményezi, hogy a $matches[0] olyan tömb lesz, ahol az összes a + teljes mintára illeszkedő szövegrész lesz egymás után, a $matches[1] + tömbben pedig azok a szövegrészek, amelyek első "gyűjtő" részmintára illeszkednek, és így tovább. <informalexample> <programlisting role="php"> <![CDATA[ -preg_match_all ("|<[^>]+>(.*)</[^>]+>|U", - "<b>példa: </b><div align=left>ez itt a teszt szöveg</div>", +preg_match_all ("|<[^>]+>(.*)</[^>]+>|U", + "<b>példa: </b><div align=left>ez itt a teszt szöveg</div>", $out, PREG_PATTERN_ORDER); print $out[0][0].", ".$out[0][1]."\n"; print $out[1][0].", ".$out[1][1]."\n" ]]> </programlisting> - <para> + <para> Ez a példa az alábbi eredményt adja: <screen> <![CDATA[ @@ -222,7 +222,7 @@ </screen> </para> </informalexample> - Tehát, az $out[0] egy tömb az összes, teljes mintára illeszkedő + Tehát, az $out[0] egy tömb az összes, teljes mintára illeszkedő szöveggel, és $out[1] egy tömb az összes HTML-elem közti szöveggel. </para> </listitem> @@ -231,13 +231,13 @@ <term>PREG_SET_ORDER</term> <listitem> <para> - Azt eredményezi, hogy $matches[0]-ben az első illesztés eredményeit, + Azt eredményezi, hogy $matches[0]-ben az első illesztés eredményeit, a $matches[1] a másodikét fogja tartalmazni, és így tovább. <informalexample> <programlisting role="php"> <![CDATA[ -preg_match_all ("|<[^>]+>(.*)</[^>]+>|U", - "<b>példa: </b><div align=left>ez itt a teszt szöveg</div>", +preg_match_all ("|<[^>]+>(.*)</[^>]+>|U", + "<b>példa: </b><div align=left>ez itt a teszt szöveg</div>", $out, PREG_SET_ORDER); print $out[0][0].", ".$out[0][1]."\n"; print $out[1][0].", ".$out[1][1]."\n" @@ -247,27 +247,27 @@ Ez a példa az alábbi eredményt adja: <screen> <![CDATA[ -<b>példa: </b>, példa: +<b>példa: </b>, példa: <div align=left>ez itt a teszt szöveg</div>, ez itt a teszt szöveg ]]> </screen> </para> </informalexample> - Ebben az esetben $matches[0] az első illesztés során megtalált - szövegrészeket tartalmazza, a $matches[0][0]-ben a teljes mintára + Ebben az esetben $matches[0] az első illesztés során megtalált + szövegrészeket tartalmazza, a $matches[0][0]-ben a teljes mintára illeszkedő szöveggel, $matches[0][1]-ben az első "gyűjtő" részmintára - illeszkedő résszel, és így tovább. Ehhez hasonlóan $matches[1] a + illeszkedő résszel, és így tovább. Ehhez hasonlóan $matches[1] a második illesztés során megtalált szövegeket tartalmazza, stb. </para> </listitem> </varlistentry> </variablelist></para> <para> - Ha nincs megadva az <parameter>order</parameter> paraméter, akkor az + Ha nincs megadva az <parameter>order</parameter> paraméter, akkor az alapértelmezés a PREG_PATTERN_ORDER. </para> <para> - Ez a függvény az összes illeszkedés számával tér vissza, vagy + Ez a függvény az összes illeszkedés számával tér vissza, vagy &false;-szal sikertelen illesztés vagy hiba esetén. </para> <para> @@ -286,14 +286,14 @@ <title>HTML elemek keresése (mohón)</title> <programlisting role="php"> <![CDATA[ -// A \\2 példa a "gyűjtő" részmintára történő hivatkozásra. Ez mondja meg -// PCRE-nek, hogy a másodikként megadott kerek zárójelre - ami ebben az -// esetben ([\w]+) - illesztett szövegnek kell szerepelnie a hivatkozás -// helyén is. A plusz visszaperjelre azért van szükség, mert a minta +// A \\2 példa a "gyűjtő" részmintára történő hivatkozásra. Ez mondja meg +// PCRE-nek, hogy a másodikként megadott kerek zárójelre - ami ebben az +// esetben ([\w]+) - illesztett szövegnek kell szerepelnie a hivatkozás +// helyén is. A plusz visszaperjelre azért van szükség, mert a minta // macskakörmök ("") közé van fogva. $html = "<b>félkövér szöveg</b><a href=howdy.html>kattints ide</a> -preg_match_all ("/(<([\w]+)[^<]*>)(.*)(<\/\\2>)/", $html, +preg_match_all ("/(<([\w]+)[^<]*>)(.*)(<\/\\2>)/", $html, $matches); for ($i=0; $i < count($matches[0]); $i++) { @@ -341,39 +341,39 @@ <paramdef>mixed <parameter>pattern</parameter></paramdef> <paramdef>mixed <parameter>replacement</parameter></paramdef> <paramdef>mixed <parameter>subject</parameter></paramdef> - <paramdef>int + <paramdef>int <parameter><optional>limit</optional></parameter> </paramdef> </funcprototype> </funcsynopsis> <para> - A <parameter>subject</parameter>-ben megadott szövegben keres a - <parameter>pattern</parameter> paraméterben megadott mintára illeszkedő + A <parameter>subject</parameter>-ben megadott szövegben keres a + <parameter>pattern</parameter> paraméterben megadott mintára illeszkedő részeket és azokat lecseréli a - <parameter>replacement</parameter>-ben megadott kifejezésre. Ha a <parameter>limit</parameter> is szerepel, akkor csak + <parameter>replacement</parameter>-ben megadott kifejezésre. Ha a +<parameter>limit</parameter> is szerepel, akkor csak az első <parameter>limit</parameter> számú illeszkedő részt cseréli le. - Ha <parameter>limit</parameter> hiányzik vagy értéke -1, akkor minden + Ha <parameter>limit</parameter> hiányzik vagy értéke -1, akkor minden illeszkedő részt cserél. </para> <para> - A <parameter>replacement</parameter>-ben hivatkozásokat is el lehet + A <parameter>replacement</parameter>-ben hivatkozásokat is el lehet helyezni <literal>\\<replaceable>n</replaceable></literal> vagy - (PHP 4.0.4-től kezdve) <literal><replaceable>$n</replaceable></literal> + (PHP 4.0.4-től kezdve) <literal><replaceable>$n</replaceable></literal> alakban (ez utóbbit részesítsd előnyben). Minden ilyen hivatkozás - az <replaceable>n</replaceable>. zárójelezett részminta által megtalált - szöveggel lesz helyettesítve. Az <replaceable>n</replaceable> értéke - 0-tól 99-ig terjedhet, ahol is a <literal>\\0</literal> vagy - <literal>$0</literal> hivatkozás az egész mintára illeszkedő szöveget - jelenti. A kerek nyitó zárójelek 1-től kezdve balról jobbra vannak + az <replaceable>n</replaceable>. zárójelezett részminta által megtalált + szöveggel lesz helyettesítve. Az <replaceable>n</replaceable> értéke + 0-tól 99-ig terjedhet, ahol is a <literal>\\0</literal> vagy + <literal>$0</literal> hivatkozás az egész mintára illeszkedő szöveget + jelenti. A kerek nyitó zárójelek 1-től kezdve balról jobbra vannak számozva és az általuk bevezetett "gyűjtő" részminták sorszámát adják. </para> <para> - Ha volt egyezés, akkor az új <parameter>subject</parameter>-tel tér + Ha volt egyezés, akkor az új <parameter>subject</parameter>-tel tér vissza a függvény, egyébként a változatlanul hagyott, eredeti <parameter>subject</parameter>-tel. </para> <para> - A <function>preg_replace</function>-nek átadott minden paraméter lehet + A <function>preg_replace</function>-nek átadott minden paraméter lehet tömb is. </para> <para> @@ -383,27 +383,27 @@ </para> <para> Ha a <parameter>pattern</parameter> és - <parameter>replacement</parameter> paraméterek tömb típusúak, akkor a - <function>preg_replace</function> veszi a tömbök elemeit és mindegyikkel - páronként elvégzi a keresést és a helyettesítést a - <parameter>subject</parameter> szövegen. Ha a - <parameter>replacement</parameter> tömbnek a + <parameter>replacement</parameter> paraméterek tömb típusúak, akkor a + <function>preg_replace</function> veszi a tömbök elemeit és mindegyikkel + páronként elvégzi a keresést és a helyettesítést a + <parameter>subject</parameter> szövegen. Ha a + <parameter>replacement</parameter> tömbnek a <parameter>pattern</parameter> tömbnél a kevesebb eleme van, akkor - a pár nélküli mintákat üres sztringgel fogja helyettesíteni. Ha a - <parameter>pattern </parameter> tömb és - <parameter>replacement</parameter> sztring típusú, akkor ezt a - helyettesítési szöveget használja minden - <parameter>pattern</parameter>-beli mintához. + a pár nélküli mintákat üres sztringgel fogja helyettesíteni. Ha a + <parameter>pattern </parameter> tömb és + <parameter>replacement</parameter> sztring típusú, akkor ezt a + helyettesítési szöveget használja minden + <parameter>pattern</parameter>-beli mintához. A fordított esetnek nem lenne sok értelme. </para> <para> - Az <literal>/e</literal> módosító hatására a - <function>preg_replace</function> a - <parameter>replacement</parameter> paramétert PHP kódként értelmezi, - miután a hivatkozások behelyettesítését elvégezte. Tipp: bizonyosodj meg - arról, hogy <parameter>replacement</parameter> érvényes PHP kódnak felel - meg (sztringben megadva), másképp a PHP szintaktikai hibát (Parse Error) - fog jelezni abban a sorban, ahol a <function>preg_replace</function> + Az <literal>/e</literal> módosító hatására a + <function>preg_replace</function> a + <parameter>replacement</parameter> paramétert PHP kódként értelmezi, + miután a hivatkozások behelyettesítését elvégezte. Tipp: bizonyosodj meg + arról, hogy <parameter>replacement</parameter> érvényes PHP kódnak felel + meg (sztringben megadva), másképp a PHP szintaktikai hibát (Parse Error) + fog jelezni abban a sorban, ahol a <function>preg_replace</function> függvényt meghívtad. </para> <para> @@ -428,8 +428,8 @@ <title>Az /e módosítót használata:</title> <programlisting role="php"> <![CDATA[ -preg_replace ("/(<\/?)(\w+)([^>]*>)/e", - "'\\1'.strtoupper('\\2').'\\3'", +preg_replace ("/(<\/?)(\w+)([^>]*>)/e", + "'\\1'.strtoupper('\\2').'\\3'", $html_body); ]]> </programlisting> @@ -442,8 +442,8 @@ <programlisting role="php"> <![CDATA[ // A $dokumentum HTML formátumú. -// Minden HTML elemet, javascript szakaszt és térközt eltávolít a -// dokumentumból. Ezenkívül néhány megszokott HTML entitást is a +// Minden HTML elemet, javascript szakaszt és térközt eltávolít a +// dokumentumból. Ezenkívül néhány megszokott HTML entitást is a // sima, karakteres megfelelőikre konvertál. $mit = array ("'<script[^<]*?>.*?</script>'si", // javascript eltüntetése @@ -481,10 +481,10 @@ </para> <note> <para> - A <parameter>limit</parameter> paraméter a PHP 4.0.1pl2 után került a + A <parameter>limit</parameter> paraméter a PHP 4.0.1pl2 után került a nyelvbe. </para> - </note> + </note> <para> Lásd még: <function>preg_match</function>, <function>preg_match_all</function> és @@ -506,18 +506,18 @@ <paramdef>mixed <parameter>pattern</parameter></paramdef> <paramdef>mixed <parameter>callback</parameter></paramdef> <paramdef>mixed <parameter>subject</parameter></paramdef> - <paramdef>int + <paramdef>int <parameter><optional>limit</optional></parameter> </paramdef> </funcprototype> </funcsynopsis> <para> - Ennek a függvénynek a működése szinte azonos a - <function>preg_replace</function> függvényével azt leszámítva, hogy - <parameter>replacement</parameter> paraméterként egy - <parameter>callback</parameter> függvényt kell megadni, amely minden - sikeres illesztésnél meghívásra kerül. Az illeszkedő szövegeket egy - tömbben adja át a PHP a 'meghívott' függvénynek, és annak a helyettesítési + Ennek a függvénynek a működése szinte azonos a + <function>preg_replace</function> függvényével azt leszámítva, hogy + <parameter>replacement</parameter> paraméterként egy + <parameter>callback</parameter> függvényt kell megadni, amely minden + sikeres illesztésnél meghívásra kerül. Az illeszkedő szövegeket egy + tömbben adja át a PHP a 'meghívott' függvénynek, és annak a helyettesítési szöveggel kell visszatérnie. Ez a függvény a PHP 4.0.5-től elérhető. </para> <para> @@ -538,10 +538,10 @@ <funcdef>array <function>preg_split</function></funcdef> <paramdef>string <parameter>pattern</parameter></paramdef> <paramdef>string <parameter>subject</parameter></paramdef> - <paramdef>int + <paramdef>int <parameter><optional>limit</optional></parameter> </paramdef> - <paramdef>int + <paramdef>int <parameter><optional>flags</optional></parameter> </paramdef> </funcprototype> @@ -549,7 +549,7 @@ <note> <para> - A <parameter>flags</parameter> paraméterrel a PHP 4 Beta 3-ban lett + A <parameter>flags</parameter> paraméterrel a PHP 4 Beta 3-ban lett kiegészítve. </para> </note> @@ -561,15 +561,15 @@ </para> <para> - Ha a <parameter>limit</parameter> meg van adva, akkor csak + Ha a <parameter>limit</parameter> meg van adva, akkor csak <parameter>limit</parameter> számú darabbal tér vissza. A <parameter>limit</parameter> értéke lehet -1 (jelentése: nincs korlát), - és ez akkor hasznos, ha a <parameter>flags</parameter> + és ez akkor hasznos, ha a <parameter>flags</parameter> paraméter értékét is szeretnéd megadni. </para> <para> - A <parameter>flags</parameter> a következő jelzőknek bármilyen + A <parameter>flags</parameter> a következő jelzőknek bármilyen kombinációja lehet a ( bitszintű | operátorral): <variablelist> <varlistentry> @@ -585,8 +585,8 @@ <term>PREG_SPLIT_DELIM_CAPTURE</term> <listitem> <simpara> - Ekkor a kerekzárójelek közé fogott ("gyűjtő") részmintára - illeszkedő szövegrészeket is visszadja a függvény. + Ekkor a kerekzárójelek közé fogott ("gyűjtő") részmintára + illeszkedő szövegrészeket is visszadja a függvény. Ez a jelző 4.0.5 verziótól használható. </simpara> </listitem> @@ -595,7 +595,7 @@ </para> <para> <example> - <title><function>preg_split</function> példa : a keresett szöveg + <title><function>preg_split</function> példa : a keresett szöveg kucslszavait adja vissza.</title> <programlisting role="php"> <![CDATA[ @@ -643,28 +643,29 @@ <funcprototype> <funcdef>string <function>preg_quote</function></funcdef> <paramdef>string <parameter>str</parameter></paramdef> - <paramdef>string + <paramdef>string <parameter><optional>delimiter</optional></parameter> </paramdef> </funcprototype> </funcsynopsis> <para> A <function>preg_quote</function> függvény az <parameter>str</parameter> - paraméterben kapott szövegben minden olyan karakter elé egy - visszaperjelet helyez el, amely egy reguláris kifejezésben speciális - jelentéssel bírhat. Ez akkor hasznos, ha olyan futási idő alatt - összeállított sztringet akarsz egy mintában felhasználni, amelyben + paraméterben kapott szövegben minden olyan karakter elé egy + visszaperjelet helyez el, amely egy reguláris kifejezésben speciális + jelentéssel bírhat. Ez akkor hasznos, ha olyan futási idő alatt + összeállított sztringet akarsz egy mintában felhasználni, amelyben előfordulhatnak speciális jelentéssel bíró reguláris karakterek. </para> <para> Ha a nem kötelező <parameter>delimiter</parameter>-t is megadod, akkor ez - a karakter is visszaperjellel lesz bevezetve. Ez pedig azért hasznos, - mert PCRE által megkövetelt határolójeleket is le tudod kezelni így. + a karakter is visszaperjellel lesz bevezetve. Ez pedig azért hasznos, + mert PCRE által megkövetelt határolójeleket is le tudod kezelni így. A / a leggyakrabban használt határolójel.</para> <para> - A reguláris kifejezésekben előforduló speciális karakterek: + A reguláris kifejezésekben előforduló speciális karakterek: <screen> -<![CDATA[ . \ + * ? [ ^ ] $ ( ) { } = ! < > | :]]></screen> +<![CDATA[ . \ + * ? [ ^ ] $ ( ) { } = ! < > | : ]]> + </screen> </para> <para> <example> @@ -682,7 +683,7 @@ <programlisting role="php"> <![CDATA[ // Ebben a példában preg_quote($szo)-t használjuk arra, hogy -// a csillagokat megfosszuk a reguláris kifejezésekben használt +// a csillagokat megfosszuk a reguláris kifejezésekben használt // speciális jelentésüktől. $szoveg = "Ezt a könyvet *nagyon* nehéz megtalálni."; @@ -715,14 +716,14 @@ </funcsynopsis> <para> - A <function>preg_grep</function> függvény egy olyan tömbbel tér vissza, - amelyben az <parameter>input</parameter> tömb azon elemei szerepelnek, + A <function>preg_grep</function> függvény egy olyan tömbbel tér vissza, + amelyben az <parameter>input</parameter> tömb azon elemei szerepelnek, amelyek a <parameter>pattern</parameter> mintára illeszkedtek.</para> <para> - PHP 4.0.4-től kezdve a <function>preg_grep</function> függvény - eredményeként visszaadot tömb az <parameter>input</parameter> indexeit használja. Ha nem ezt - akarod, akkor használd a <function>array_values</function> függvényt - a <function>preg_grep</function> által visszaadott tömb + PHP 4.0.4-től kezdve a <function>preg_grep</function> függvény + eredményeként visszaadot tömb az <parameter>input</parameter> indexeit +használja. Ha nem ezt + akarod, akkor használd a <function>array_values</function> függvényt + a <function>preg_grep</function> által visszaadott tömb újraindexeléséhez.</para> <para> <example> @@ -741,7 +742,7 @@ <refentry id="pcre.pattern.modifiers"> <refnamediv> <refname>Minta módosítók</refname> - <refpurpose>A lehetséges, PCRE reguláris kifejezések kiértékelését + <refpurpose>A lehetséges, PCRE reguláris kifejezések kiértékelését befolyásoló módosítók felsorolása</refpurpose> </refnamediv> <refsect1> @@ -757,8 +758,8 @@ <term><emphasis>i</emphasis> (PCRE_CASELESS)</term> <listitem> <simpara> - Ha ez a módosító be van kapcsolva, akkor a minta a nagy- és kisbetűk - különbözőségére érzéketlen, a mintában előforduló betűk mind a kis- + Ha ez a módosító be van kapcsolva, akkor a minta a nagy- és kisbetűk + különbözőségére érzéketlen, a mintában előforduló betűk mind a kis- mind a nagybetűkre illeszkednek. </simpara> </listitem> @@ -767,18 +768,18 @@ <term><emphasis>m</emphasis> (PCRE_MULTILINE)</term> <listitem> <simpara> - Alapértelmezés szerint PCRE úgy tekinti a tárgyszöveget, mintha az - egyetlen sorból állna (mégha történetesen tartalmaz is néhány újsor - karaktert). A "sor eleje" metakarakter (^) csakis a tárgyszöveg + Alapértelmezés szerint PCRE úgy tekinti a tárgyszöveget, mintha az + egyetlen sorból állna (mégha történetesen tartalmaz is néhány újsor + karaktert). A "sor eleje" metakarakter (^) csakis a tárgyszöveg elejére, míg a "sor vége" metakarakter ($) csakis a szöveg végére - vagy a lezáró újsor-karakterre engedi illeszteni a mintát - kivéve - ha <emphasis>D</emphasis> módosító be van kapcsolva. Ez ugyanúgy + vagy a lezáró újsor-karakterre engedi illeszteni a mintát - kivéve + ha <emphasis>D</emphasis> módosító be van kapcsolva. Ez ugyanúgy működik, mint Perl-ben. </simpara> <simpara> Amikor ez a módosító be van kapcsolva, akkor "sor eleje" illetve "sor vége" szerkezetek közvetlenül a következő illetve közvetlenül a - megelőző újsor karakterekre, és a szöveg legelejére illetve + megelőző újsor karakterekre, és a szöveg legelejére illetve legvégére illeszkednek. Ez egyenértékű Perl /m módosítójával. Ha nincs a tárgyszövegben "\n" karakter vagy a mintában nincs ^ illetve $, akkor ennek a módosítónak nincs hatása. @@ -792,8 +793,8 @@ Ha ez a módosító be van kapcsolva, a mintában előforduló . metakarakter minden karakterre - beleértve az újsor karaktert is - illeszkedik, míg enélkül az újsor karakterre nem illeszkedne. - Ez egyenértékű a Perl /s módosítójával. A tagadó karakterosztályok - (mint például [^a]) mindig illeszkednek az újsor karakterre + Ez egyenértékű a Perl /s módosítójával. A tagadó karakterosztályok + (mint például [^a]) mindig illeszkednek az újsor karakterre függetlenül ennek a módósítónak a beállításától. </simpara> </listitem> @@ -802,14 +803,14 @@ <term><emphasis>x</emphasis> (PCRE_EXTENDED)</term> <listitem> <simpara> - Ha ez a módosító be van kapcsolva, akkor a mintában szereplő - térközök - kivéve visszaperjelet elétéve vagy a + Ha ez a módosító be van kapcsolva, akkor a mintában szereplő + térközök - kivéve visszaperjelet elétéve vagy a karakterosztályokon belülieket - nem lesznek részei a mintának, valamint minden karakter, amely karakterosztályon kívüli literális # - és a rákövetkező újsorkarakter közé esik, figyelmen kívül hagy a - PCRE. Ez egyenértékű a Perl /x módosítójával, ami lehetővé teszi - megjegyzések elhelyezését a bonyolultabb mintákban. Megjegyzendő, - hogy ez csak bizonyos poziciókra vonatkozik, térközkarakterek soha + és a rákövetkező újsorkarakter közé esik, figyelmen kívül hagy a + PCRE. Ez egyenértékű a Perl /x módosítójával, ami lehetővé teszi + megjegyzések elhelyezését a bonyolultabb mintákban. Megjegyzendő, + hogy ez csak bizonyos poziciókra vonatkozik, térközkarakterek soha nem szerepelhetnek speciális karaktersorozatokban, mint például (?( -ban, ami egy feltételes részminta kezdetét jelöli. </simpara> @@ -820,13 +821,13 @@ <listitem> <simpara> Ha ez a módosító be van kapcsolva, akkor <function>preg_replace - </function> függvény a helyettesítési paraméterként kapott - sztringet - a hivatkozások feloldása után - PHP kódként értelmezi, - és ennek a kódnak az eredményét helyettesíti be a keresett szöveg + </function> függvény a helyettesítési paraméterként kapott + sztringet - a hivatkozások feloldása után - PHP kódként értelmezi, + és ennek a kódnak az eredményét helyettesíti be a keresett szöveg helyére. </simpara> <simpara> - Csak a <function>preg_replace</function> használja ezt a módosítót, + Csak a <function>preg_replace</function> használja ezt a módosítót, a többi PCRE függvény figyelmen kívül hagyja. </simpara> </listitem> @@ -835,9 +836,9 @@ <term><emphasis>A</emphasis> (PCRE_ANCHORED)</term> <listitem> <simpara> - Ha ez a módosító be van kapcsolva, akkor a keresett mintát - "lerögzíti", ami annyit jelent, hogy a minta illesztése - korlátozva van a tárgyszöveg elejére. Ezt a hatást elérhetjük + Ha ez a módosító be van kapcsolva, akkor a keresett mintát + "lerögzíti", ami annyit jelent, hogy a minta illesztése + korlátozva van a tárgyszöveg elejére. Ezt a hatást elérhetjük ha magát a mintát megfelelően alakítjuk ki, miként Perl-ben ennek ez az egyetlen módja. </simpara> @@ -849,9 +850,9 @@ <simpara> Ha ez a módosító be van kapcsolva, akkor dollár metakarakter ($) a mintán belül csak a tárgyszöveg végére illeszkedik. Enélkül - a módosító nélkül a $ a legutolsó újsorkarakter előtti pozicióra is + a módosító nélkül a $ a legutolsó újsorkarakter előtti pozicióra is illeszkedik, de semmilyen más poziciójú újsorkarakter előtt nem. - Ezt a módosítót figyelmen kívül hagyja a PCRE, ha a + Ezt a módosítót figyelmen kívül hagyja a PCRE, ha a <emphasis>m</emphasis> be van kapcsolva. Nincs megfelelője Perl-ben. </simpara> </listitem> @@ -861,9 +862,9 @@ <listitem> <simpara> Ha egy mintát többször használunk, akkor érdemes több időt hagyni - a kiértékelésére, hogy az illesztésre fordított idő + a kiértékelésére, hogy az illesztésre fordított idő lerövidülhessen. Ennek a módosítónak a bekapcsolásával ezt biztosítjuk. - Jelenleg, csak olyan nem "rögzített" minták esetén + Jelenleg, csak olyan nem "rögzített" minták esetén hasznos, amelyek nem egy egyszerű, rögzített karakterrel kezdődnek. </simpara> </listitem> @@ -873,8 +874,8 @@ <listitem> <simpara> Ez a módosító megfordítja a kvantorok (sokszorozók) mohóságát, - azaz alapértelmezés szerint nem lesznek mohók, csak ha egy ? követi - azokat. Ez nem Perl-kompatibilis. A mintában is beállítható + azaz alapértelmezés szerint nem lesznek mohók, csak ha egy ? követi + azokat. Ez nem Perl-kompatibilis. A mintában is beállítható (?U) sorozat megadásával. </simpara> </listitem> @@ -883,12 +884,12 @@ <term><emphasis>X</emphasis> (PCRE_EXTRA)</term> <listitem> <simpara> - Ez a módosító PCRE további lehetőségeit teszi elérhetővé, amelyek - nem Perl-kompatibilisak. Valamennyi visszaperjel a mintában, amit + Ez a módosító PCRE további lehetőségeit teszi elérhetővé, amelyek + nem Perl-kompatibilisak. Valamennyi visszaperjel a mintában, amit olyan karakter követ, aminek nincs speciális jelentése, hibát okoz, és ilyenformán lefoglalja ezeket a karakterkombinációkat a jövőbeni - kiterjesztések előtt. Alapértelmezés szerint az ilyen különleges - jelentés nélküli karakter előtt álló visszaperjelet a Perl betű + kiterjesztések előtt. Alapértelmezés szerint az ilyen különleges + jelentés nélküli karakter előtt álló visszaperjelet a Perl betű szerint veszi. Jelenleg nincs más jellegzetesség, amit ez a módosító befolyásolna. </simpara> @@ -899,7 +900,7 @@ <listitem> <simpara> Ez a módosító is PCRE olyan további lehetőségét teszi elérhetővé, - ami nem Perl-kompatibilis. A mintát UTF-8 kódolású szövegnek + ami nem Perl-kompatibilis. A mintát UTF-8 kódolású szövegnek tekinti. Ez a módosító PHP 4.1.0-től kezdve érhető el. </simpara> </listitem> @@ -920,8 +921,8 @@ <refsect1> <title>Leírás</title> <simpara> - A PCRE könyvtár függvények sorát tartalmazza, amelyek reguláris - kifejezések mintaillesztését végzik el ugyanazt a szintaxist és + A PCRE könyvtár függvények sorát tartalmazza, amelyek reguláris + kifejezések mintaillesztését végzik el ugyanazt a szintaxist és szemantikát használva - néhány eltérést nem számítva -, mint a Perl 5. (lásd alább). A jelenlegi megvalósítás Perl 5.005-höz hasonló. </simpara> @@ -934,55 +935,55 @@ <orderedlist> <listitem> <simpara> - 1. Alapértelmezés szerint térköznek tekintendő minden olyan karakter, - amit a C könyvtár isspace() függvénye felismer, bár lehetőség van arra, - hogy PCRE-t eltérő karakterkódtáblázattal fordítsuk le. Az isspace() - rendszerint a szóköz, lapdobás, "kocsi-vissza", újsor és vízszintes - illetve függőleges tabulátorokat tekinti térköznek. Perl 5-ben ez utóbbi - már nem szerepel a listában. A \v szekvencia nagyon sokáig benne volt a - Perl dokumentációjában, valójában soha nem ismerte fel mintaillesztés - közben. Legalább az 5.002 verzióig ezt a karaktert is térköznek + 1. Alapértelmezés szerint térköznek tekintendő minden olyan karakter, + amit a C könyvtár isspace() függvénye felismer, bár lehetőség van arra, + hogy PCRE-t eltérő karakterkódtáblázattal fordítsuk le. Az isspace() + rendszerint a szóköz, lapdobás, "kocsi-vissza", újsor és vízszintes + illetve függőleges tabulátorokat tekinti térköznek. Perl 5-ben ez utóbbi + már nem szerepel a listában. A \v szekvencia nagyon sokáig benne volt a + Perl dokumentációjában, valójában soha nem ismerte fel mintaillesztés + közben. Legalább az 5.002 verzióig ezt a karaktert is térköznek tekintették, de a 5.004 és 5.005 verziókban már nem illeszkedik a \s-re. </simpara> </listitem> <listitem> <simpara> - 2. PCRE nem engedi meg az előretekintő tesztekben (lookahead assertion) + 2. PCRE nem engedi meg az előretekintő tesztekben (lookahead assertion) a kvantorok (sokszorozók) használatát. Perl-ben ez megengedett, de nem a várt eredményt adja. Például (?!a){3}, nem azt jelenti, hogy teszteli, vajon - a következő három karakter nem "a", hanem azt, hogy háromszor "jelenti", + a következő három karakter nem "a", hanem azt, hogy háromszor "jelenti", ha a következő karakter nem "a". </simpara> </listitem> <listitem> <simpara> - Tagadó előretekintő tesztekben (negated lookahead assertion) szereplő - "begyűjtő" részminták (capturing subpatterns) számon vannak tartva, de a - hozzájuk tartozó numerikus változók soha nem kerülnek feltöltésre. - Perl feltölti ezeket a numerikus változókat valamilyen, a sikertelen - teszt előtti mintára illeszkedő részt követő karakterekkel, de csak + Tagadó előretekintő tesztekben (negated lookahead assertion) szereplő + "begyűjtő" részminták (capturing subpatterns) számon vannak tartva, de a + hozzájuk tartozó numerikus változók soha nem kerülnek feltöltésre. + Perl feltölti ezeket a numerikus változókat valamilyen, a sikertelen + teszt előtti mintára illeszkedő részt követő karakterekkel, de csak akkor, ha a tagadó előretekintő tesztnek csak egy ága volt. </simpara> </listitem> <listitem> <simpara> A bináris nullkarakter használata megengedett a tárgyszövegben, de - a mintában nem, mert a mintául szolgáló sztring nullvégű C sztringként - adódik át. A "\0" vezérlőszekvencia használható a mintában bináris + a mintában nem, mert a mintául szolgáló sztring nullvégű C sztringként + adódik át. A "\0" vezérlőszekvencia használható a mintában bináris nullkarakter megjelenítésére. </simpara> </listitem> <listitem> <simpara> - Nem támogatja az alábbi Perl vezérlőszekvenciákat: - \l, \u, \L, \U, \E, \Q. Valójában ezek a funkciók a Perl - sztringkezelő részében vannak megvalósítva, és nem tartoznak annak + Nem támogatja az alábbi Perl vezérlőszekvenciákat: + \l, \u, \L, \U, \E, \Q. Valójában ezek a funkciók a Perl + sztringkezelő részében vannak megvalósítva, és nem tartoznak annak mintaillesztő motorjához. </simpara> </listitem> <listitem> <simpara> - A Perl \G tesztjét nem támogatja, mivel nem fontos az egyszeres minta + A Perl \G tesztjét nem támogatja, mivel nem fontos az egyszeres minta illesztésekben. </simpara> </listitem> @@ -999,50 +1000,50 @@ $2 numerikus változó értéke "b" lesz, míg a "aabbaa"-ra illesztve /^(aa(bb)?)+$/ -t $2 üres marad. Mindamellett /^(aa(b(b))?)+$/ -ra módosítva a mintát $2 és $3 is beállításra kerül. Perl 5.004-ben - $2 mindkét esetben beállításra kerül, mint ahogy ez a PCRE-re is - igaz. Ha a jövőben a Perl-ben ezt egységesíteni fogják, akkor PCRE + $2 mindkét esetben beállításra kerül, mint ahogy ez a PCRE-re is + igaz. Ha a jövőben a Perl-ben ezt egységesíteni fogják, akkor PCRE követni fogja ezt. </simpara> </listitem> <listitem> <simpara> Másik mindeddig megoldatlan eltérés, hogy pl. /^(a)?(?(1)a|b)+$/ - minta Perl 5.002_2-ben illeszkedik a "a"-ra, míg PCRE-ben nem. Ráadásul - mind Perl-ben mind PCRE-ben /^(a)?a/ minta "a"-ra illesztése során a $1 + minta Perl 5.002_2-ben illeszkedik a "a"-ra, míg PCRE-ben nem. Ráadásul + mind Perl-ben mind PCRE-ben /^(a)?a/ minta "a"-ra illesztése során a $1 változó üresen marad. </simpara> </listitem> <listitem> <para> - PCRE néhény bővítést is nyújt a Perl reguláris kifejezéseinek + PCRE néhény bővítést is nyújt a Perl reguláris kifejezéseinek lehetőségeihez: <orderedlist> <listitem> <simpara> - Jóllehet a hátratekintő tesztek csak rögzített hosszúságú - sztringekre illeszkedhetnek, az alternatív ágak mindegyikében különböző - hosszúságú sztringre illeszkedő minta adható meg. Perl 5.005-ben minden + Jóllehet a hátratekintő tesztek csak rögzített hosszúságú + sztringekre illeszkedhetnek, az alternatív ágak mindegyikében különböző + hosszúságú sztringre illeszkedő minta adható meg. Perl 5.005-ben minden ágban ugyanakkorának kell lennie ennek a hossznak. </simpara> </listitem> <listitem> <simpara> - Ha a <link linkend="pcre.pattern.modifiers">PCRE_DOLLAR_ENDONLY</link> + Ha a <link linkend="pcre.pattern.modifiers">PCRE_DOLLAR_ENDONLY</link> be van kapcsolva, és a <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> nincs bekapcsolva, akkor $ metakarakter csakis a sztring legvégére illeszkedik. </simpara> </listitem> <listitem> <simpara> - Ha <link linkend="pcre.pattern.modifiers">PCRE_EXTRA</link> be van - kapcsolva, akkor bármilyen külön jelentéssel nem bíró karakter előtti + Ha <link linkend="pcre.pattern.modifiers">PCRE_EXTRA</link> be van + kapcsolva, akkor bármilyen külön jelentéssel nem bíró karakter előtti visszaperjel hibának minősül. </simpara> </listitem> <listitem> <simpara> Ha <link linkend="pcre.pattern.modifiers">PCRE_UNGREEDY</link> be van - kapcsolva, akkor a kvantorok (sokszorozók) mohóságát fordítva értelmezi, + kapcsolva, akkor a kvantorok (sokszorozók) mohóságát fordítva értelmezi, azaz, alapértelmezés szerint nem mohók, csak ha egy kérdőjel ? áll utánuk. </simpara> </listitem> @@ -1058,36 +1059,36 @@ <refsect2 id="regexp.introduction"> <title>Bevezetés</title> <para> - Az alábbiakban a PCRE által megvalósított reguláris kifejezések - szintaktikáját és szemantikáját adjuk meg. A reguláris kifejezések - leírása a Perl dokumentációnak része is, és néhány könyv is foglalkozik - vele, némelyik rengeteg példával. Jeffrey Friedl "Mastering Regular - Expression" c. könyve, amely az O'Reilly gondozásában jelent meg (ISBN + Az alábbiakban a PCRE által megvalósított reguláris kifejezések + szintaktikáját és szemantikáját adjuk meg. A reguláris kifejezések + leírása a Perl dokumentációnak része is, és néhány könyv is foglalkozik + vele, némelyik rengeteg példával. Jeffrey Friedl "Mastering Regular + Expression" c. könyve, amely az O'Reilly gondozásában jelent meg (ISBN 1-56592-257-3) igen nagy mélységben tárgyalja a reguláris kifejezéseket. Az itteni leírást referenciának szánjuk. </para> <para> - A reguláris kifejezés maga egy minta, amit a tárgyszövegre kell - illeszteni balról jobbra. A karakterek többsége maga helyett áll a - mintában, azaz csak saját magára illeszkedik a tárgyszövegben. Egy - egyszerű példán bemutatva: az <literal>a gyors vörös róka</literal> minta - a tárgyszöveg azon részére illeszkedik, ami megegyezik vele (azaz ahol az + A reguláris kifejezés maga egy minta, amit a tárgyszövegre kell + illeszteni balról jobbra. A karakterek többsége maga helyett áll a + mintában, azaz csak saját magára illeszkedik a tárgyszövegben. Egy + egyszerű példán bemutatva: az <literal>a gyors vörös róka</literal> minta + a tárgyszöveg azon részére illeszkedik, ami megegyezik vele (azaz ahol az <literal>a gyors vörös róka</literal> előfordul). </para> </refsect2> <refsect2 id="regexp.reference.meta"> <title>Metakarakterek</title> <para> - A reguláris kifejezések ereje abban rejlik, hogy lehetőségünk van + A reguláris kifejezések ereje abban rejlik, hogy lehetőségünk van vagylagosságot (alternatívákat) és ismétléseket megadni a mintában. Ezeket a <emphasis>metakarakterek</emphasis> használatával lehet megadni, - amelyek nem saját maguk helyett állnak a mintában, hanem speciális + amelyek nem saját maguk helyett állnak a mintában, hanem speciális jelentéssel bírnak. </para> <para> Két különböző típusú metakarakter létezik: - az egyik bárhol előfordulhat a mintában, kivéve szögeletes zárójelek [] - között, és a másik, ami csak szögeletes zárójelek között azonosítható + az egyik bárhol előfordulhat a mintában, kivéve szögeletes zárójelek [] + között, és a másik, ami csak szögeletes zárójelek között azonosítható metakarakterként. A szögletes zárójeleken kívüli metakarakterek: <variablelist> <varlistentry> @@ -1102,7 +1103,7 @@ <term><emphasis>^</emphasis></term> <listitem> <simpara> - tárgyszöveg elejét (vagy sor elejét többsoros módban) jelenti + tárgyszöveg elejét (vagy sor elejét többsoros módban) jelenti </simpara> </listitem> </varlistentry> @@ -1118,7 +1119,7 @@ <term><emphasis>.</emphasis></term> <listitem> <simpara> - bármilyen karakterre illeszkedik, kivéve az újsor karaktert + bármilyen karakterre illeszkedik, kivéve az újsor karaktert (alapértelmezés szerint) </simpara> </listitem> @@ -1168,7 +1169,7 @@ <listitem> <simpara> opcionálitást jelez (0 vagy 1 előfordulást engedélyez), - vagy kibővíti az előtte álló ( jelentését, + vagy kibővíti az előtte álló ( jelentését, és a kvantorok (sokszorozók) mohóságát befolyásolja </simpara> </listitem> @@ -1207,8 +1208,8 @@ </varlistentry> </variablelist> - A minta szögletes zárójelek [] közötti részét karakterosztálynak hívjuk. - A karakterosztályokban engedélyezett metakarakterek a következők: + A minta szögletes zárójelek [] közötti részét karakterosztálynak hívjuk. + A karakterosztályokban engedélyezett metakarakterek a következők: <variablelist> <varlistentry> <term><emphasis>\</emphasis></term> @@ -1222,7 +1223,7 @@ <term><emphasis>^</emphasis></term> <listitem> <simpara> - negálja az osztályt, kizáró / tagadó osztályt definiál, + negálja az osztályt, kizáró / tagadó osztályt definiál, de csak ha ez az első karakter az osztályon belül </simpara> </listitem> @@ -1251,33 +1252,33 @@ <title>visszaperjel \</title> <para> A visszaperjel \ karakternek számos alkalmazása van. - Először is, ha nem alfanumerikus karakter követi, akkor annak bármilyen - különleges jelentését (metakarakterek) figyelmen kívül hagyja, és azt - mint maga helyett álló karaktert értelmezi. Ebben a minőségében mind + Először is, ha nem alfanumerikus karakter követi, akkor annak bármilyen + különleges jelentését (metakarakterek) figyelmen kívül hagyja, és azt + mint maga helyett álló karaktert értelmezi. Ebben a minőségében mind karakterosztályon belül mind kívül használható. </para> <para> Például, ha "*" karaktert kell illeszteni, akkor "\*"-t kell írni a - mintában. Akármikor használható ez a szerkezet, akár a következő karakter - egyébként metakarakterként lenne értelmezve, akár nem. (Egy kivétel van - lásd a ] karakternél - a fordító.) Ezért biztos módszer előírni azt, hogy - minden nem alfanumerikus karakter maga helyett álljon, úgy, hogy - visszaperjelet (\) írunk elé. Különben ha a visszaperjelre szeretnénk + mintában. Akármikor használható ez a szerkezet, akár a következő karakter + egyébként metakarakterként lenne értelmezve, akár nem. (Egy kivétel van + lásd a ] karakternél - a fordító.) Ezért biztos módszer előírni azt, hogy + minden nem alfanumerikus karakter maga helyett álljon, úgy, hogy + visszaperjelet (\) írunk elé. Különben ha a visszaperjelre szeretnénk illeszteni, akkor "\\"-t kell írni. </para> <para> - Ha a minta <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link> + Ha a minta <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link> módosítóval van megadva, akkor minden olyan térközkaraktert figyelmen - kívül hagy, amely karakterosztályon kívül vagy karakterosztályon - kívüli "#" és azt követő újsor-karakter között szerepel. Visszaperjellel + kívül hagy, amely karakterosztályon kívül vagy karakterosztályon + kívüli "#" és azt követő újsor-karakter között szerepel. Visszaperjellel bevezetett térköz- vagy "#" karakterek a minta részét képezik. </para> <para> - A visszaperjel másik alkalmazása a nem nyomtatható karakterek kódolását - teszi láthatóvá a mintában. Nincs megszorítás a nem nyomtatható karakterek - megjelenésére, kivéve a mintát lezáró nullkaraktert. - Ha a minta szövegszerkesztés folyományaként áll elő, akkor általában - könnyebb valamelyik alábbi vezérlőszekvenciát használni, mint az általuk + A visszaperjel másik alkalmazása a nem nyomtatható karakterek kódolását + teszi láthatóvá a mintában. Nincs megszorítás a nem nyomtatható karakterek + megjelenésére, kivéve a mintát lezáró nullkaraktert. + Ha a minta szövegszerkesztés folyományaként áll elő, akkor általában + könnyebb valamelyik alábbi vezérlőszekvenciát használni, mint az általuk reprezentált karakter bináris alakját: </para> <para> @@ -1357,40 +1358,40 @@ </variablelist> </para> <para> - A "<literal>\cx</literal>" feloldása precízen megfogalmazva a következő: + A "<literal>\cx</literal>" feloldása precízen megfogalmazva a következő: ha "<literal>x</literal>" kisbetű, akkor nagybetűvé konvertálódik. Ezután - a karakter 6. bitjét (hexadecimálisan 40) invertálja. Ilyenformán + a karakter 6. bitjét (hexadecimálisan 40) invertálja. Ilyenformán "<literal>\cz</literal>"-ból hexadecimális 1A lesz, de - "<literal>\c{</literal>"-ból hexadecimális 3B lesz, míg + "<literal>\c{</literal>"-ból hexadecimális 3B lesz, míg "<literal>\c;</literal>"-ból hexadecimális 7B. </para> <para> - A "<literal>\x</literal>" után két hexadecimális számjegy kerül + A "<literal>\x</literal>" után két hexadecimális számjegy kerül beolvasásra (a betűk lehetnek kis és nagybetűk is). </para> <para> - A "<literal>\0</literal>" után két további oktális számjegy kerül - beolvasásra. Minden esetben - még ha kevesebb, mint két számjegy került - is megadásra - a meglevő számjegyek lesznek felhasználva. Ekképpen - "<literal>\0\x\07</literal>" egy olyan sorozatot definiál, ahol két - bináris nullkaraktert követ egy csengőkarakter. Bizonyosodj meg affelől, + A "<literal>\0</literal>" után két további oktális számjegy kerül + beolvasásra. Minden esetben - még ha kevesebb, mint két számjegy került + is megadásra - a meglevő számjegyek lesznek felhasználva. Ekképpen + "<literal>\0\x\07</literal>" egy olyan sorozatot definiál, ahol két + bináris nullkaraktert követ egy csengőkarakter. Bizonyosodj meg affelől, hogy mindig van két számjegy a kezdő 0 után, ha a következő karakter oktális számjegy! </para> <para> A nem 0-val folytatódó visszaperjel kezelése bonyolult. Karakterosztályon - kívül PCRE ezt és a soron következő számjegyeket tízes - számrendszerbeli számként értelmezi. Ha szám 10-nél kisebb vagy - legalább ezzel a számmal egyező "gyűjtő" nyitó zárójel előzi meg a - kifejezésben, akkor az egész sorozatot <emphasis>hivatkozás</emphasis>ként értelmezi. - Később a zárójelezett részminták fejezetében részletesen tárgyaljuk, + kívül PCRE ezt és a soron következő számjegyeket tízes + számrendszerbeli számként értelmezi. Ha szám 10-nél kisebb vagy + legalább ezzel a számmal egyező "gyűjtő" nyitó zárójel előzi meg a + kifejezésben, akkor az egész sorozatot <emphasis>hivatkozás</emphasis>ként +értelmezi. + Később a zárójelezett részminták fejezetében részletesen tárgyaljuk, hogyan használható is ez. </para> <para> - Karakterosztályon belül vagy ha a tízes számrendszerbeli szám 9-nél nagyobb, - és nincs ennyi számú "gyűjtő" részminta, akkor PCRE újraolvassa a + Karakterosztályon belül vagy ha a tízes számrendszerbeli szám 9-nél nagyobb, + és nincs ennyi számú "gyűjtő" részminta, akkor PCRE újraolvassa a visszaperjelet követő három oktális karaktert, és egy bájtra váltja a 8 - legkisebb helyiértékű bitet. Bármely rákövetkező számjegy maga helyett + legkisebb helyiértékű bitet. Bármely rákövetkező számjegy maga helyett áll, magára illeszkedik. </para> <para> @@ -1407,7 +1408,7 @@ <term><emphasis>\40</emphasis></term> <listitem> <simpara> - ugyanaz mint előbb, ha biztosított, hogy 40-nél kevesebb "gyűjtő" + ugyanaz mint előbb, ha biztosított, hogy 40-nél kevesebb "gyűjtő" részminta van előtte </simpara> </listitem> @@ -1473,18 +1474,18 @@ </variablelist> </para> <para> - Figyelj arra, hogy 100-nál nagyobb oktális értékek elé nem szabad + Figyelj arra, hogy 100-nál nagyobb oktális értékek elé nem szabad bevezető 0-t írni, mert mindig csak három oktális kerül beolvasásra. </para> <para> - Minden sorozat, ami egy egyszerű bájtot határoz meg, karakterosztályon + Minden sorozat, ami egy egyszerű bájtot határoz meg, karakterosztályon belül és kívül is használható. Ráadásul karakterosztályokon belül a - "<literal>\b</literal>" szekvencia "visszatörlés" karakterként - (backspace) (hexadecimálisan 08) jelent. Ennek karakterosztályokon + "<literal>\b</literal>" szekvencia "visszatörlés" karakterként + (backspace) (hexadecimálisan 08) jelent. Ennek karakterosztályokon kívül más jelentése van (lásd alább). </para> <para> - A visszaperjel harmadik alkalmazási módja általános karakterfajták + A visszaperjel harmadik alkalmazási módja általános karakterfajták megadása: </para> <para> @@ -1501,7 +1502,7 @@ <term><emphasis>\D</emphasis></term> <listitem> <simpara> - bármilyen karakter, ami nem tízes számrendszerbeli számjegy + bármilyen karakter, ami nem tízes számrendszerbeli számjegy </simpara> </listitem> </varlistentry> @@ -1540,33 +1541,33 @@ </variablelist> </para> <para> - Mindegyik szekvenciapár két diszjunkt (egymással nem átfedő) részre + Mindegyik szekvenciapár két diszjunkt (egymással nem átfedő) részre osztja a karakterek teljes halmazát. Minden karakter csakis a párok egyik felébe tartozik. </para> <para> - "Szóépítő" karakter minden betű vagy számjegy vagy aláhúzás, azaz - minden olyan karakter, amit egy Perl-típusú "<literal>szónak</literal>" - része lehet. A betűk és számjegyek értelmezése a PCRE - karaktertáblázataitól függ, amelyek változhatnak ha nyelvi beállítástól - függően. Például, "fr" (vagy "hu" - a fordító) nyelvi beálllítás esetén - 128-nál magasabb kódú karakterek használatosak az ékezetes betűkhöz, + "Szóépítő" karakter minden betű vagy számjegy vagy aláhúzás, azaz + minden olyan karakter, amit egy Perl-típusú "<literal>szónak</literal>" + része lehet. A betűk és számjegyek értelmezése a PCRE + karaktertáblázataitól függ, amelyek változhatnak ha nyelvi beállítástól + függően. Például, "fr" (vagy "hu" - a fordító) nyelvi beálllítás esetén + 128-nál magasabb kódú karakterek használatosak az ékezetes betűkhöz, amelyekre illeszkedik a <literal>\w</literal>. </para> <para> - Ezek a karakterfajták mind karekterosztályokon belül és kívül is - alkalmazhatók. Mindegyik csak egy, a neki megfelelő karakterre - illeszkedik. Ha az aktuális illeszkedési pont a tárgyszöveg vége, akkor - mindegyik sikertelen lesz, mert egyáltalán nincs karakter, amire + Ezek a karakterfajták mind karekterosztályokon belül és kívül is + alkalmazhatók. Mindegyik csak egy, a neki megfelelő karakterre + illeszkedik. Ha az aktuális illeszkedési pont a tárgyszöveg vége, akkor + mindegyik sikertelen lesz, mert egyáltalán nincs karakter, amire illeszteni lehetne. </para> <para> - A visszaperjelet végül de nem utolsósorban néhány egyszerű teszt - megadására használhatjuk. A tesztek (assertion) olyan feltételek, - amelyeknek az illesztés adott pontján kell teljesülnie anélkül, hogy a - tárgyszöbegből karaktereket használnának el - és így karaktereket - vennének el az illesztéstől. Később megadjuk, hogy hogyan használhatók - a részminták összetettebb tesztek megadásához. + A visszaperjelet végül de nem utolsósorban néhány egyszerű teszt + megadására használhatjuk. A tesztek (assertion) olyan feltételek, + amelyeknek az illesztés adott pontján kell teljesülnie anélkül, hogy a + tárgyszöbegből karaktereket használnának el - és így karaktereket + vennének el az illesztéstől. Később megadjuk, hogy hogyan használhatók + a részminták összetettebb tesztek megadásához. A "visszaperjeles" tesztek: </para> <para> @@ -1599,7 +1600,7 @@ <term><emphasis>\Z</emphasis></term> <listitem> <simpara> - tárgyszöveg vége vagy újsor karakter a végén (függetlenül többsoros + tárgyszöveg vége vagy újsor karakter a végén (függetlenül többsoros üzemmódtól) </simpara> </listitem> @@ -1615,86 +1616,86 @@ </variablelist> </para> <para> - Ezek a tesztek karakterosztályokban nem használhatók. (Figyeld meg, hogy - "<literal>\b</literal>"-nek eltérő jelentése van karakteroszályokon + Ezek a tesztek karakterosztályokban nem használhatók. (Figyeld meg, hogy + "<literal>\b</literal>"-nek eltérő jelentése van karakteroszályokon belül, nevezetesen itt a "visszatörlés" karakter helyett áll.) </para> <para> - A szóhatár a tárgyszöveg azon poziciója, ahol az aktuális és az azt - megelőző karakterek fajtája <literal>\w</literal> illetve <literal>\W</literal> vagy fordítva + A szóhatár a tárgyszöveg azon poziciója, ahol az aktuális és az azt + megelőző karakterek fajtája <literal>\w</literal> illetve <literal>\W</literal> +vagy fordítva (az egyik <literal>\w</literal>-re illeszkedik, míg a másik <literal>\W</literal>-re), vagy a tárgyszöveg eleje illetve - vége, ha az első illetve utolsó karakter a <literal>\w</literal>-re + vége, ha az első illetve utolsó karakter a <literal>\w</literal>-re illeszkedik. </para> <para> - A <literal>\A</literal>, <literal>\Z</literal> és <literal>\z</literal> tesztek különböznek a hagyományos kalap(os ékezet) "^" és - dollárjel "$" szimbólumoktól, mert az előbbiek minden esetben csakis a + A <literal>\A</literal>, <literal>\Z</literal> és <literal>\z</literal> tesztek +különböznek a hagyományos kalap(os ékezet) "^" és + dollárjel "$" szimbólumoktól, mert az előbbiek minden esetben csakis a tárgyszöveg legelejére illetve legvégére illeszkednek. Nem befolyásolja a - viselkedésüket sem <link linkend="pcre.pattern.modifiers">PCRE_NOTBOL</link> sem <link + viselkedésüket sem <link linkend="pcre.pattern.modifiers">PCRE_NOTBOL</link> sem +<link linkend="pcre.pattern.modifiers">PCRE_NOTEOL</link> módosító. - A <literal>\Z</literal> és <literal>\z</literal> közti különbség annyi, hogy a <literal>\z</literal> csak a tárgyszöveg végére + A <literal>\Z</literal> és <literal>\z</literal> közti különbség annyi, hogy a +<literal>\z</literal> csak a tárgyszöveg végére illeszkedik, míg <literal>\Z</literal> az esetlegesen a tárgyszöveg végén lévő újsor karakter előtt is. </para> </refsect2> <refsect2 id="regexp.reference.circudollar"> <title>kalap(os ékezet) ^ és dollárjel $</title> <literallayout> - Karakterosztályokon kívül az alapértelmezett illesztési - üzemmódban a kalap(os ékezet) egy olyan tesztet jelent,amely - csak akkor és csak is akkor igaz (&true;), ha a pillanatnyi - illesztési pont a tárgyszöveg kezdete. Karakterosztályokon + Karakterosztályokon kívül az alapértelmezett illesztési + üzemmódban a kalap(os ékezet) egy olyan tesztet jelent,amely + csak akkor és csak is akkor igaz (&true;), ha a pillanatnyi + illesztési pont a tárgyszöveg kezdete. Karakterosztályokon belül teljesen más jelentése van (lásd alább). - A kalapnak akkor nem szükséges a minta legelején állnia, ha - több választási lehetőség is fennáll (lásd: retesz pipa + A kalapnak akkor nem szükséges a minta legelején állnia, ha + több választási lehetőség is fennáll (lásd: retesz pipa csővezeték |), de minden választható ágban a legelsőnek kell lennie, ha azt akarod, hogy a minta valaha is illeszkedjen. - Ha mindegyik lehetséges ág "kalappal" kezdődik, azaz ha a + Ha mindegyik lehetséges ág "kalappal" kezdődik, azaz ha a minta mindenesetben csak a tárgyszöveg elejétől kezdve - illeszkedhet, akkor "(le)rögzített" mintáról beszélünk. + illeszkedhet, akkor "(le)rögzített" mintáról beszélünk. (Más módja is van, hogy egy mintát "rögzíts".) - + A dollárjel olyan tesztet jelent, amely csak akkor és csakis - akkor igaz (&true;), ha a pillanatnyi illesztési pont a - tárgyszöveg vége vagy egy újsor karakter előtti pozició - az - alapértelmezés szerint. A dollárjelnek akkor nem szükséges a - minta legvégén állnia, ha több választási lehetőség is fennáll + akkor igaz (&true;), ha a pillanatnyi illesztési pont a + tárgyszöveg vége vagy egy újsor karakter előtti pozició - az + alapértelmezés szerint. A dollárjelnek akkor nem szükséges a + minta legvégén állnia, ha több választási lehetőség is fennáll (lásd: retesz pipa csővezeték |),de minden választható ágban - ahol szerepel - a legutolsónak kell lennie. A dollárjelnek nincs külön jelentése karakterosztályokon belül. - - A dollárjel jelentése megváltozik és csak a tárgyszöveg - végére illeszkedik, ha a <link linkend="pcre.pattern.modifiers">PCRE_DOLLAR_ENDONLY</link> módosító be van - kapcsolva a minta fordításakor / kiértékelésekor vagy az + + A dollárjel jelentése megváltozik és csak a tárgyszöveg + végére illeszkedik, ha a <link +linkend="pcre.pattern.modifiers">PCRE_DOLLAR_ENDONLY</link> módosító be van + kapcsolva a minta fordításakor / kiértékelésekor vagy az illesztés pillanatában. Ez nem érinti a <literal>\Z</literal> tesztet. - + A kalap(os ékezet) és a dollárjel jelentését megváltoztatja <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> módosító bekapcsolása. Ebben az esetben a közbenső "\n" újsorkarakterek közvetlen előtti illetve utáni - pozicióira is illeszkednek a tárgyszöveg eleji és végi + pozicióira is illeszkednek a tárgyszöveg eleji és végi pozición felül. Például, így a <literal>/^abc$/</literal> minta többsoros - üzemmódban illeszkedik a "def\nabc" szövegre, de egyébként + üzemmódban illeszkedik a "def\nabc" szövegre, de egyébként nem. Következésképpen az egysoros üzemmódban "rögzítettnek" tekintett minták, nem "rögzítettek" többsoros üzemmódban, - mert ekkor "^"-kal kezdődő vagylagos ágak nem tekinthetők - "rögzítettnek". A <link linkend="pcre.pattern.modifiers">PCRE_DOLLAR_ENDONLY</link> módosítót figyelmen kívül hagyja, ha a + mert ekkor "^"-kal kezdődő vagylagos ágak nem tekinthetők + "rögzítettnek". A <link +linkend="pcre.pattern.modifiers">PCRE_DOLLAR_ENDONLY</link> módosítót figyelmen kívül +hagyja, ha a <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link>, módosító be van kapcsolva. - Figyelj arra, hogy a \A, \Z és \z szekvenciák mindkét - üzemmódban használhatók a tárgyszöveg elejére illetve végére - illesztésben, és ha minden vagylagos ág \A -val kezdődik, - akkor a minta mindig "rögzített" lesz akármi is a + Figyelj arra, hogy a \A, \Z és \z szekvenciák mindkét + üzemmódban használhatók a tárgyszöveg elejére illetve végére + illesztésben, és ha minden vagylagos ág \A -val kezdődik, + akkor a minta mindig "rögzített" lesz akármi is a <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> módosító állapota. </literallayout> </refsect2> <refsect2 id="regexp.reference.dot"> <title>pont .</title> <literallayout> - Karakterosztályokon kívül a pont bármelyik karakterre - illeszkedik beleértve minden nem nyomtatható karaktert is, + Karakterosztályokon kívül a pont bármelyik karakterre + illeszkedik beleértve minden nem nyomtatható karaktert is, kivéve az újsort - alapértelmezés szerint. Ha a <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> be van kapcsolva, akkor az újsor karakterre is illeszkedik. - A pont kezelése teljesen független a kalap(os ékezet) ^ és + A pont kezelése teljesen független a kalap(os ékezet) ^ és a dollárjel $ kezelésétől, az egyetlen közös hármukban, hogy mindegyiknek köze van az újsor karakterhez. A pontnak nincs speciális jelentése karakterosztályokon belül. @@ -1710,13 +1711,13 @@ kell állnia - az esetleges kalap(os ékezet) után -, vagy egy visszaperjelet kell eléírni. - A karakterosztályok csak a tárgyszöveg egyetlen karakterére - illeszkednek. Ha a karakterosztály legelső karaktere nem a + A karakterosztályok csak a tárgyszöveg egyetlen karakterére + illeszkednek. Ha a karakterosztály legelső karaktere nem a kalap(os ékezet) ^,akkor ez csak a karakterosztályba tartozó karakterek valamelyikére illeszkedik, ha a legelső karakter kalap(os ékezet) ^ , akkor pedig csak azokra, amelyek nem elemei az osztálynak. (Ez utóbbit hívjuk tagadó vagy kizáró - karakterosztálynak - a fordító.) Ha a kalap(os ékezet) ^ + karakterosztálynak - a fordító.) Ha a kalap(os ékezet) ^ karaktert kell megadni egy karakterosztály elemeként, akkor az nem lehet a legelső pozicióban, vagy visszaperjelet kell eléírni. @@ -1724,15 +1725,15 @@ Az [aeiou] karakterosztály például minden kisbetűs ékezet nélküli magánhangzóra illeszkedik, míg az [^aeiou] pont ezekre nem. A kalap(os ékezet) kényelmes jelölési forma olyan - karakterosztályok megadására, ahol a kizárandó elemeket + karakterosztályok megadására, ahol a kizárandó elemeket könnyebb felsorolni. Ez nem teszt, ez karaktereket használ el a tárgyszövegből, ezért a tárgyszöveg végén az illesztés sikertelen lesz. Amikor a kis- és nagybetűk különbözősége nem számít, akkor a - betűk a kis- és nagybetűs alakjukat is képviselik, tehát + betűk a kis- és nagybetűs alakjukat is képviselik, tehát ilyen esetben például [aeiou] illeszkedik az "A"-ra és az - "a"-ra is, és az [^aeiou] nem illeszkedik a "A"-ra, csak ha + "a"-ra is, és az [^aeiou] nem illeszkedik a "A"-ra, csak ha a kis- és nagybetű különbözősége számít. Karakterosztályokban az újsort soha nem kezelik különleges @@ -1741,12 +1742,12 @@ mindig illeszkednek az újsor karakterre. Az "-" elválasztójellel karaktertartományokat lehet megadni - a karakterosztályon belül. A [d-m], például, a d és m közti + a karakterosztályon belül. A [d-m], például, a d és m közti bármelyik karakterre illeszkedik - d-t és m-et is beleértve. Ha az elválasztójelet kell a karakterosztályon belül megadni, - akkor vagy egy visszaperjelet kell eléírni, vagy olyan - pozicióban kell megadni, ahol nem lehet tartományképzőként - értelmezni, jellemzően a karakterosztály első vagy utolsó + akkor vagy egy visszaperjelet kell eléírni, vagy olyan + pozicióban kell megadni, ahol nem lehet tartományképzőként + értelmezni, jellemzően a karakterosztály első vagy utolsó tagjaként. A "]" karaktert ebben a literális formában nem lehet egy @@ -1773,13 +1774,13 @@ A karakterosztályokhoz karakterfajtákat - \d, \D, \s, \S, \w és \W -t - is hozzáadhatunk, és így a fajtába tartozó - karaterekkel bővíthejük. A [\dABCDEF] - például - minden + karaterekkel bővíthejük. A [\dABCDEF] - például - minden hexadecimális számjegyre illeszkedik . A kalap(os ékezet)-t a nagybetűs (tagadó) fajtákkal együtt használva kényelmesen - megadható a kisbetűs párjuknál korlátozotabb halmaz.A [^\W_] + megadható a kisbetűs párjuknál korlátozotabb halmaz.A [^\W_] karakterosztály minden betűre és számjegyre illeszkedik, de az aláhúzásra nem (ami ugyancsak eleme a \w-nek). - + A \, -, a kezdő ^ és a záró ] karakterektől eltekintve a nem alfanumerikus karaktereknek nincs különleges jelentésük a karakterosztályokon belül, de nem okoz gondot, ha esetleg @@ -1789,12 +1790,12 @@ <refsect2 id="regexp.reference.verticalbar"> <title>Retesz, pipa, csővezeték |</title> <literallayout> - A "|" karakterrel vagylagos - alternatív - mintákat lehet - megadni, pontosabban azokat választja el egymástól. Például + A "|" karakterrel vagylagos - alternatív - mintákat lehet + megadni, pontosabban azokat választja el egymástól. Például gyula|sacika - minta illeszkedik a "gyula" és a "sacika" szövegre is. + minta illeszkedik a "gyula" és a "sacika" szövegre is. Bármennyi vagylagos mintát fel lehet sorolni, köztük az üres mintát is, ami az üres sztringre illeszkedik. Az illesztés a mintákat balról jobbra, egymás után sorjában veszi, és a @@ -1806,14 +1807,14 @@ <refsect2 id="regexp.reference.internal-options"> <title>Módosítók mintán belüli beállításai</title> <literallayout> - A <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link> , <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> , <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> és + A <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link> , <link +linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> , <link +linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> és <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link> módosítókat a minta belsejében is átállíthatjuk "(?" és ")" közé írt Perl-beli betűjelzéseikkel. Ezek a betűk: - i = <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link> - m = <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> - s = <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> - x = <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link> + i = <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link> + m = <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> + s = <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> + x = <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link> A "(?im)" bekapcsolja a többsoros és a "kis-nagybetű mindegy" üzemmódot. Kikapcsolni az egyes beállításokat az eléjük írt @@ -1828,7 +1829,7 @@ kívüli beállítás olyan, mintha az illesztés kezdetén lett volna megadva, ezért a következő minták tökéletesen ugyanúgy működnek: - + (?i)abc a(?i)bc ab(?i)c @@ -1842,7 +1843,7 @@ jutni. Ha részmintán belül történik módosítóváltoztatás, akkor a - hatás különböző (Perl 5.005 viselkedésbeli változása). + hatás különböző (Perl 5.005 viselkedésbeli változása). A részmintán belüli módosító-állítás csak a részminta hátramaradó részét érinti, ezért @@ -1851,17 +1852,17 @@ minta csak az "abc" és "aBc" szövegekre illeszkedik feltéve, hogy <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link> módosítót nem adtuk meg. Ez azt jelenti, hogy a minta különböző helyein a módosítók más és - más értékeit lehet beállítani. Bármilyen változtatás egy + más értékeit lehet beállítani. Bármilyen változtatás egy vagylagos (választható) ágban a következő ágakra is hatással van ugyanabban a részmintában, például - + (a(?i)b|c) minta illeszkedik az "ab", "aB", "c" és "C" szövegekre még akkor is, ha "C"-re illeszkedve az nem is az első ágra esett a választás, ahol a módosító be lett állítva. Ennek az az oka, hogy a módosító beállítások hatásai már a kifejezés - fordításakor / kiértékelésekor rögzülnek, máskülönben néha + fordításakor / kiértékelésekor rögzülnek, máskülönben néha nagyon furcsa viselkedést tapasztalhatnánk. A PCRE-specifikus <link linkend="pcre.pattern.modifiers">PCRE_UNGREEDY</link> és <link linkend="pcre.pattern.modifiers">PCRE_EXTRA</link> módosítókat @@ -1881,23 +1882,23 @@ 1. Elágazási lehetőségek helyét jelöli ki (csoportosítás): - szél(toló|kakas|) + szél(toló|kakas|) - minta illeszkedik a "szél", "széltoló" vagy "szélkakas" + minta illeszkedik a "szél", "széltoló" vagy "szélkakas" szavak egyikére. Zárójel nélkül a "széltoló"-ra, a "kakas"-ra vagy az üres sztringre illeszkedne. 2. A részmintát "gyűjtő" részmintává változtatja. Ha a teljes mintát sikerült illeszteni, akkor a tárgyszöveg azon részei, amelyek a "gyűjtő" részmintákra illeszkedtek, - a <function>pcre_exec</function> függvény <emphasis>ovector</emphasis> paraméterében a hívó - függvénynek lesznek átadva. + a <function>pcre_exec</function> függvény <emphasis>ovector</emphasis> +paraméterében a hívó + függvénynek lesznek átadva. A kerek nyitó zárójelek számozása balról jobbra 1-től kezdve történik, és "gyűjtő" részminták (sor)számát adják. - - Például, ha az "a vörös király" szöveget illesztjük - a ((vörös|sápadt) (király|királynő)) + Például, ha az "a vörös király" szöveget illesztjük + + a ((vörös|sápadt) (király|királynő)) mintára, akkor a megtalált / begyűjtött szövegrészek : 1. "vörös király", 2. "vörös" és 3. "király". @@ -1907,7 +1908,7 @@ csoportosító funkcióra van szükségünk "begyűjtés" nélkül. Erre szolgál a nyitó zárójel után irható "?:" karaktersorozat , mert ekkor a részminta nem gyűjti be / tárolja el a - ráilleszkedő szövegrészt, és nem is számít bele a következő + ráilleszkedő szövegrészt, és nem is számít bele a következő "gyűjtő" részminták sorszámozásába. Az előző példánál maradva "a sápadt királynő" @@ -1919,17 +1920,17 @@ részminta "gyűjtő" és "nem-gyűjtő" együtt legfeljebb 200. Ha egy nem-gyűjtő részminta elején módosítókat kell állítani, - akkor kényelmes rövidítésként használható, hogy a módosítók - betűjelei a "?" és a ":" közé írhatók. Ebből adódóan az + akkor kényelmes rövidítésként használható, hogy a módosítók + betűjelei a "?" és a ":" közé írhatók. Ebből adódóan az alábbi két minta (?i:szombat|szerda) (?:(?i)szombat|szerda) - pontosan ugyanazokra a sztringekre illeszkedik. - Mivel a vagylagos / választható ágak próbálgatása balról - jobbra történik, és a módosító hatása addig él, amíg a - részminta le nem zárul, az egyik ágban beállított módosító + pontosan ugyanazokra a sztringekre illeszkedik. + Mivel a vagylagos / választható ágak próbálgatása balról + jobbra történik, és a módosító hatása addig él, amíg a + részminta le nem zárul, az egyik ágban beállított módosító hatással van a következő ágra is, ezért a fenti minta illeszkedik a "SZERDA" és "Szombat" szavakra is. </literallayout> @@ -1948,7 +1949,7 @@ után. - Az általános ismétlő kvantor (sokszorozó) - kapcsos + Az általános ismétlő kvantor (sokszorozó) - kapcsos zárójelben vesszővel elválasztva - írja elő azt minimális és maximális előfordulási számot, ahányszor a mintát illeszteni kell illetve lehet. Ezeknek 65536-nél kisebbnek kell lenniük, @@ -1957,23 +1958,23 @@ z{2,4} minta illeszkedik a "zz", "zzz" vagy "zzzz" szövegekre. - Az egymagában álló záró kapcsos zárójel nem bír speciális + Az egymagában álló záró kapcsos zárójel nem bír speciális jelentéssel. Ha a második számot nem adjuk meg, de a vessző szerepel, akkor az illesztésnek nincs felső határa, de ha a vesszőt is elhagyjuk, akkor a kvantor (sokszorozó) pontosan - a megadott számú illesztést engedi csak. Ekképpen: + a megadott számú illesztést engedi csak. Ekképpen: [aáeéiíoóöőuúüű]{3,} legalább 3 egymást követő magánhangzóra illeszkedik, de akár - többre is, míg a + többre is, míg a \d{8} csakis 8 darab számjegyre. Ha a nyitó kapcsos zárójel olyan helyen szerepel, ahol kvantor nem szerepelhet, akkor betű szerint lesz figyelembe véve, maga helyett áll a mintában. A - {,6} például nem kvantor (sokszorozó), hanem egy négy + {,6} például nem kvantor (sokszorozó), hanem egy négy karakteres minta betű szerint értelmezve. A {0} kvantor (sokszorozó) megengedett, és hatása olyan, @@ -2013,17 +2014,17 @@ /\*.*\*/ - mintát a + mintát a /* első megjegyzés */ c_code(); /* második megjegyzés */ C forrásrészletre illesztve kudarcot vallunk - köszönhetően a .* elem mohóságának. (Az illesztés sikeres, csak nem arra - való, amire szerettük volna - a fordító). + való, amire szerettük volna - a fordító). Ha azonban a kvantort (sokszorozót) kérdőjel ? követi, akkor - ez megszünteti annak mohóságát, és csak a lehető legkevesebb - illesztést engedi, ezért a + ez megszünteti annak mohóságát, és csak a lehető legkevesebb + illesztést engedi, ezért a /\*.*?\*/ @@ -2039,15 +2040,15 @@ egy számjegyre illeszkedik leginkább, és csak akkor kettőre, ha a minta maradék része másképp nem illeszkedne. - Ha a <link linkend="pcre.pattern.modifiers">PCRE_UNGREEDY</link> módosító be van kapcsolva, akkor - a kvantorok (sokszorozók) alapértelmezés szerint nem mohók + Ha a <link linkend="pcre.pattern.modifiers">PCRE_UNGREEDY</link> módosító be van +kapcsolva, akkor + a kvantorok (sokszorozók) alapértelmezés szerint nem mohók (szerények :), csak ha egykérdőjel követi őket. Másszóval, a - kérdőjel átállítja a kvantorok alapértelmezés szerinti + kérdőjel átállítja a kvantorok alapértelmezés szerinti viselkedését. - Amikor egy zárójelezett részminta egynél többször vagy - legfeljebb meghatározott számban ismétlődhet, akkor a - kiértékelt minta több memóriát foglal el a minimális és + Amikor egy zárójelezett részminta egynél többször vagy + legfeljebb meghatározott számban ismétlődhet, akkor a + kiértékelt minta több memóriát foglal el a minimális és maximális előfordulással arányosan. Ha a minta .* -val vagy .{0,} -val kezdődik és a <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> @@ -2061,10 +2062,10 @@ esetekben, amikor tudjuk, hogy a tárgyszöveg nem tartalmaz újsorkaraktereket és a minta .* -gal kezdődik, érdemes beállítani a <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> módosítót vagy ^ -t használni - a "rögzítés" eléréséhez, hogy ezt az optimalizálást + a "rögzítés" eléréséhez, hogy ezt az optimalizálást kieszközöljük. - Ha a "(be)gyűjtő" részminta az illesztés során ismételten + Ha a "(be)gyűjtő" részminta az illesztés során ismételten felhasználásra kerül, akkor a begyűjtött / megtalált szöveg- rész az utolsó ismétlésben illeszkedő rész lesz. Például a @@ -2074,7 +2075,7 @@ begyűjtött / megtalált szövegrész "csoriaet" lesz. Egymásba ágyazott részminták esetén a begyűjtött érték lehet, hogy az előző lépésben lett beállítva, például: - + /(a|(b))+/ illesztve a "aba" -ra a második begyűjtött szövegrész a "b". @@ -2083,11 +2084,11 @@ <refsect2 id="regexp.reference.back-references"> <title>HIVATKOZÁSOK</title> <literallayout> - Karakterosztályon kívül visszaperjelet követő számjegy(ek) a + Karakterosztályon kívül visszaperjelet követő számjegy(ek) a mintában korábban előforduló "gyűjtő" részmintára történő hivatkozásnak minősül(nek), ha a számnak megfelelő "gyűjtő" részminta nyitó kerek-zárójele ( előfordult már a mintában. - + Ha azonban ez a tízes számrendszerbeli szám 10-nél kisebb, akkor mindig hivatkozásnak minősül, s csak akkor okoz hibát, ha nincs ennyi "gyűjtő" részminta megnyitva az egész mintán @@ -2117,19 +2118,19 @@ Egy részmintára több hivatkozás is utalhat. Ha a részminta ténylegesen nem lett felhasználva az illesztés során, akkor - bármilyen hivatkozás rá hibát jelent. Például + bármilyen hivatkozás rá hibát jelent. Például (a|(bc))\2 - minta mindig hibázik, ha az illesztés "a"-val kezdődött és + minta mindig hibázik, ha az illesztés "a"-val kezdődött és nem "bc"-vel.Mivel legfeljebb 99 hivatkozás lehet egy mintán belül, minden visszaperjel után álló számjegy egy lehetséges - hivatkozás részét képezheti. Ha a mintát számjeggyel - kellene folytatni, akkor a hivatkozás végét valamilyen + hivatkozás részét képezheti. Ha a mintát számjeggyel + kellene folytatni, akkor a hivatkozás végét valamilyen elválasztókarakterrel kell jelezni. Ha <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link> módosító - be van kapcsolva, akkor ez bármilyen térközkarakter lehet, + be van kapcsolva, akkor ez bármilyen térközkarakter lehet, egyébként egy üres megjegyzés is megfelel. - + Azok a hivatkozások, amelyek magára a hivatkozást tartalmazó részmintára utalnak,a részminta első illesztésekor hibáznak, ezért például (a\1) soha nem illeszkedik semmire. Azonban az @@ -2139,7 +2140,7 @@ (a|b\1)+ illeszkedik a csupa "a"-ból álló és az "aba", "ababaa" s - ehhez hasonló sorozatokra. A részminta illesztés minden + ehhez hasonló sorozatokra. A részminta illesztés minden iterációjában a hivatkozás az előző iterációnak megfelelő karaktersorozatra utal. Azért, hogy ez működjön, a mintának olyannak kell lennie, hogy az első lépésben nem kelljen a @@ -2175,7 +2176,7 @@ ize(?!bigyo) illeszkedik a "ize" minden olyan előfordulására, amit nem a - "bigyo" követ. Nyilvánvaló, hogy egy hasonló minta + "bigyo" követ. Nyilvánvaló, hogy egy hasonló minta (?!ize)bigyo @@ -2185,7 +2186,7 @@ "ize", hanem "bigy" (tesztként nem változik a pillanatnyi illesztési pozició - a fordító). Ahhoz, hogy a kívánt hatást érjük el a hátratekintő tesztre van szükségünk. - + A hátratekintő tesztek (?<= vagy tagadó feltétel esetén a (?<! sorozattal kezdődnek, például @@ -2195,7 +2196,7 @@ A hátratekintő tesztek csak rögzített hosszúságúak lehetnek. Ha azonban több alternatívát adunk meg a teszten belül, a különböző ágaknak lehet eltérő a hossza, ilyenformán a - + (?<=tulok|szamár) megengedett, ellentétben a @@ -2221,7 +2222,7 @@ ágra a pillanatnyi illesztési pozició átmenetileg hátrébb kerül az ágtesztnek megfelelő számú karakterrel és ezután illeszteni próbál. Ha nincs elég karakter a visszalépéshez, - az illesztés sikertelen lesz. A hátratekintő tesztek az + az illesztés sikertelen lesz. A hátratekintő tesztek az egyszeri részmintákkal együtt különösen hasznosak lehetnek a szöveg végi illeszkedéseknél, az "Egyszeri részminták" c. szakasz végén található erre példa. @@ -2237,7 +2238,7 @@ három karakter számjegy-e és utána azt, hogy ezek nem a "999"-t adják.Ez a minta nem azokra az "ize"-kre illeszkedik, amelyek előtt hat karakter áll: három számjegy és másik - három, ami nem a "999", példaképpen nem illeszkedik a + három, ami nem a "999", példaképpen nem illeszkedik a "123abcize" szövegre. Az a minta, ami ezt tudja a következő: (?<=\d{3}...)(?<!999)ize @@ -2246,7 +2247,7 @@ és azt vizsgálja, hogy az első három számjegy-e, ezután a második feltétel a maradék három karaktert nézi, hogy azok nem a "999" sorozat. A tesztek egymásba ágyazhatók bármilyen - komibinációban. Például a + komibinációban. Például a (?<=(?<!ize)bigyo)figyula @@ -2261,12 +2262,12 @@ A teszt-minták nem "gyűjtő" részminták, és nem ismételhetők, hiszen nincs sok értelme ugyanazt többször tesztelni. Ha bármilyen teszt "gyűjtő" részmintát tartalmaz, akkor - ezek a részminták is beleszámítanak a "gyűjtő" részminták + ezek a részminták is beleszámítanak a "gyűjtő" részminták számozásába, azonban csak pozitív tesztekre lesz végrehajtva - a megtalált szövegrész "begyűjtése", mert tagadó tesztek + a megtalált szövegrész "begyűjtése", mert tagadó tesztek esetén ennek nincs értelme. - A tesztek beleszámítanak a zárójelezett részmintákra + A tesztek beleszámítanak a zárójelezett részmintákra vonatkozó 200-as felső korlátba. </literallayout> </refsect2> @@ -2282,17 +2283,17 @@ illesztés hamarabb elbukjon - mint egyébként -, ha a minta készítője tudja, hogy nincs értelme folytatni. - Nézzük a következő példát, ahol a \d+ize mintát a + Nézzük a következő példát, ahol a \d+ize mintát a 123456bigyo - szövegre illesztjük. + szövegre illesztjük. Miután 6 számjeggyel végzett,az illesztés elbukik az "ize"-n. Ekkor a szokásos lépés, hogy megpróbálja újból 5 majd 4 és - és így tovább sorjában - eggyel kevesebb számjegyet illeszteni - a "\d+"-re , amíg végül minden lehetőséget kimerítve + a "\d+"-re , amíg végül minden lehetőséget kimerítve az illesztés elbukik. Az egyszeri részminták azt a lehetőséget - biztosítják nekünk, hogy ha egyszer a minta egy darabja + biztosítják nekünk, hogy ha egyszer a minta egy darabja illeszkedett, akkor az ne legyen újra és újra kiértékelve a fenti módon, hanem az illesztés fejeződjön be azonnal, ha az "ize"-t nem tudja illeszteni mar az első alkalommal. Ennek a @@ -2303,11 +2304,11 @@ Ez a zárójelféle lezárja a közrefogott részmintát, ha az egyszer már illeszkedett,és az illesztés későbbi sikertelen szakaszában megakadályozza, hogy az illesztés visszalépjen - ebbe a részbe. Emellett azonban az előző elemekre a - visszalépegetés a szokásos módon történik. + ebbe a részbe. Emellett azonban az előző elemekre a + visszalépegetés a szokásos módon történik. <!--Backtracking past it to previous items, however, works as normal.--> - Másfajta leírása, hogy ez a fajta részminta úgy illeszkedik + Másfajta leírása, hogy ez a fajta részminta úgy illeszkedik a szövegre, mint ahogy egy, a pillanatnyi illesztési ponthoz rögzített, de az eredetivel teljesen megegyező, önálló minta lenne. @@ -2319,7 +2320,7 @@ hogy a minta maradék része is illeszkedni tudjon, addig a (?>\d+) csakis a teljes számjegy sorozatra illeszkedik. - Ez a szerkezet egymásba ágyazható, és természetesen + Ez a szerkezet egymásba ágyazható, és természetesen tartalmazhat tetszőlegesen bonyolult részmintákat is. Az egyszeri részminták a hátratekintő tesztekkel közösen @@ -2328,7 +2329,7 @@ abcd$ - egy hosszú, nem illeszkedő szövegre alkalmazva. Mivel az + egy hosszú, nem illeszkedő szövegre alkalmazva. Mivel az illesztés balról jobbra történik, PCRE a tárgyszöveg minden "a" betűjét végignézi, és megvizsgálja, hogy onnantól a minta többi része illeszkedik-e. Ha a mintát így adjuk meg: @@ -2342,14 +2343,14 @@ utolsó két karakter kivételével, stb. Az "a" megkeresése mégegyszer lefedi az egész szöveget - most jobbról balról -, ez sem jobb. Ha azonban a mintát az alábbi alakra hozzuk - + ^(?>.*)(?<=abcd) az eljárás nem tud visszalépni .* elemre, csak az egész - szövegre tud illeszkedni a minta. A soron következő + szövegre tud illeszkedni a minta. A soron következő hátratekintő teszt pedig az utolsó négy karaktert ellenőrzi. Ha a teszt sikertelen, akkor az illesztés nyomban elbukik. - Hosszú szövegek esetén ez a megközelítés jelentős - mérhető + Hosszú szövegek esetén ez a megközelítés jelentős - mérhető - különbséget jelent a feldolgozási időben. A korlátlan ismétlésű részmintákat tartalmazó mintákban, @@ -2374,9 +2375,9 @@ és PCRE is rendelkezik egy beépített optimalizálással, amely lehetővé teszi a sikertelenség korai jelzését, mert megjegyzik az utolsó illesztendő karaktert és korán - jeleznek, ha az nincs benne a tárgyszövegben.) + jeleznek, ha az nincs benne a tárgyszövegben.) Ha a mintát a következőképp módosítjuk: - + ((?>\D+)|<\d+>)*[!?] akkor a nem számjegyekből álló sorozatot nem lehet széttörni @@ -2420,8 +2421,8 @@ azaz ha a tárgyszöveg nyitó zárójellel kezdődött, akkor az "igen-részminta" érvényre jut, és a bezáró kerek zárójel már kötelező lesz, egyébként - mivel nincs megadva "nem-minta" - - semminek nem kell illeszkednie. Magyarán ez a minta az - elhagyható zárójelek közé fogott zárójeleket nem tartalmazó + semminek nem kell illeszkednie. Magyarán ez a minta az + elhagyható zárójelek közé fogott zárójeleket nem tartalmazó karaktersorozatra illeszkedik. Ha a feltételrészben nem csak számjegyek vannak, akkor annak @@ -2433,7 +2434,7 @@ (?(?=[^a-z]*[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) - (Az első sorban a tesztfeltétel, + (Az első sorban a tesztfeltétel, a másodikban a két választható minta.) A feltétel olyan előretekintő teszt, ami azt vizsgálja, hogy egy betű előtt elhagyható, nem betűkből álló karaktersorozat @@ -2467,7 +2468,7 @@ illeszkedő minta problémáját. Rekurzió használata nélkül a legtöbb, amit tehetünk, hogy rögzített számú egymásba ágyazhatóságot kezelő mintát használunk. Nem megoldható a - tetszőleges mélységű egymásbaágyazhatóság. + tetszőleges mélységű egymásbaágyazhatóság. Perl 5.6 kísérleti jelleggel biztosítja a lehetőséget a reguláris kifejezések rekurzív bejárására (több más mellett). A különleges (?R) elem jelenti a meghatározott önhivatkozási