cvs: phpdoc /fr/functions pcre.xml

From: Date: Mon, 23 Jul 2001 08:13:02 +0000
Subject: cvs: phpdoc /fr/functions pcre.xml
Groups: php.doc 
Request: Send a blank email to phpdoc+get-969336443@lists.php.net to get a copy of this message
dams Mon Jul 23 04:13:02 2001 EDT Modified files: /phpdoc/fr/functions pcre.xml Log: Added U option.

Index: phpdoc/fr/functions/pcre.xml diff -u phpdoc/fr/functions/pcre.xml:1.24 phpdoc/fr/functions/pcre.xml:1.25 --- phpdoc/fr/functions/pcre.xml:1.24 Sat Jul 7 18:22:19 2001 +++ phpdoc/fr/functions/pcre.xml Mon Jul 23 04:13:01 2001 @@ -7,7 +7,7 @@ fort &agrave; celle de Perl. Les expressions seront entour&eacute;es de d&eacute;limiteurs, slash (/), par exemple. N'importe quel caract&egrave;re peut servir de d&eacute;limiteur, tant qu'il - n'est pas alpha-num&eacute;rique ou n'est pas un antislash (\). + n'est pas alpha-num&eacute;rique ou n'est pas un antislash (&#92;). Si un d&eacute;limiteur doit &ecirc;tre utilis&eacute; dans l'expression, il faudra l'&eacute;chapper avec un antislash. Depuis PHP 4.0.4, vous pouvez utiliser les d&eacute;limiteurs @@ -22,10 +22,10 @@ <example> <title>Exemples de masques valides</title> <itemizedlist> - <listitem><simpara><literal>/&lt;\/\w+>/</literal></simpara></listitem> - <listitem><simpara><literal>|(\d{3})-\d+|Sm</literal></simpara></listitem> + <listitem><simpara><literal>/&lt;&#92;/&#92;w+>/</literal></simpara></listitem> + <listitem><simpara><literal>|(&#92;d{3})-&#92;d+|Sm</literal></simpara></listitem> <listitem><simpara><literal>/^(?i)php[34]/</literal></simpara></listitem> - <listitem><simpara><literal>{^\s+(\s+)?$}</literal></simpara></listitem> + <listitem><simpara><literal>{^&#92;s+(&#92;s+)?$}</literal></simpara></listitem> </itemizedlist> </example> </para> @@ -40,12 +40,12 @@ </listitem> <listitem> <simpara> - /\w+\s*\w+/J - option 'J' inconnue + /&#92;w+&#92;s*&#92;w+/J - option 'J' inconnue </simpara> </listitem> <listitem> <simpara> - 1-\d3-\d3-\d4| - d&eacute;limiteur initial manquant + 1-&#92;d3-&#92;d3-&#92;d4| - d&eacute;limiteur initial manquant </simpara> </listitem> </itemizedlist> @@ -102,7 +102,7 @@ <title>Extraction d'un num&eacute;ro de page d'une cha&icirc;ne.</title> <programlisting role="php"> &lt;?php -if (preg_match("/page\s+#(\d+)/i", "Aller &agrave; la page num&eacute;ro 9.", $parts)) +if (preg_match("/page&#92;s+#(&#92;d+)/i", "Aller &agrave; la page num&eacute;ro 9.", $parts)) print "La page suivante est $parts[1]"; else print "Page introuvable."; @@ -113,15 +113,15 @@ <title>Trouve le mot "web"</title> <programlisting role="php"> &lt;?php -// \b, dans le masque, indique une limite de mot, de fa&ccedil;on &agrave; ce que le mot +// &#92;b, dans le masque, indique une limite de mot, de fa&ccedil;on &agrave; ce que le mot // "web" uniquement soit rep&eacute;r&eacute;, et pas seulement des parties de mots comme // dans "webbing" ou "cobweb" -if (preg_match ("/\bweb\b/i", "PHP est le meilleur langage de script du web.")) { +if (preg_match ("/&#92;bweb&#92;b/i", "PHP est le meilleur langage de script du web.")) { print "Un mot a &eacute;t&eacute; trouv&eacute;."; } else { print "Un mot n'a pas &eacute;t&eacute; trouv&eacute;."; } -if (preg_match ("/\bweb\b/i", "PHP est le meilleur langage de script pour les webagency.")) { +if (preg_match ("/&#92;bweb&#92;b/i", "PHP est le meilleur langage de script pour les webagency.")) { print "Un mot a &eacute;t&eacute; trouv&eacute;."; } else { print "Un mot n'a pas &eacute;t&eacute; trouv&eacute;."; @@ -134,12 +134,12 @@ <programlisting role="php"> &lt;?php // rep&eacute;rer le nom de l'h&ocirc;te dans l'URL -preg_match("/^(http:\/\/)?([^\/]+)/i", +preg_match("/^(http:&#92;/&#92;/)?([^&#92;/]+)/i", "http://www.php.net/index.html", $matches); $host = $matches[2]; // rep&eacute;rer les deux derniers segments du nom de l'h&ocirc;te -preg_match("/[^\.\/]+\.[^\.\/]+$/",$host,$matches); -echo "Le nom de domaine est : ".$matches[0]."\n"; +preg_match("/[^&#92;.&#92;/]+&#92;.[^&#92;.&#92;/]+$/",$host,$matches); +echo "Le nom de domaine est : ".$matches[0]."&#92;n"; ?&gt; </programlisting> </example> @@ -147,7 +147,8 @@ <computeroutput> Le nom de domaine est : php.net </computeroutput> - Voir aussi <function>preg_match_all</function>, + Voir aussi + <function>preg_match_all</function>, <function>preg_replace</function> et <function>preg_split</function>. </para> @@ -197,8 +198,8 @@ <programlisting role="php"> &lt;?php preg_match_all("|&lt;[^&gt;]+&gt;(.*)&lt;/[^&gt;]+&gt;|U", "&lt;b&gt;example: &lt;/b&gt;&lt;div align=left&gt;a test&lt;/div&gt;", $out, PREG_PATTERN_ORDER); -print $out[0][0].", ".$out[0][1]."\n"; -print $out[1][0].", ".$out[1][1]."\n"; +print $out[0][0].", ".$out[0][1]."&#92;n"; +print $out[1][0].", ".$out[1][1]."&#92;n"; ?&gt; </programlisting> </informalexample> @@ -206,7 +207,7 @@ <informalexample> <literallayout> <computeroutput> -&lt;b&gt;exemple: &lt/b&gt;, &lt;div align=left&gt;ceci est un test&lt;/div&gt; +&lt;b&gt;exemple: &lt;/b&gt;, &lt;div align=left&gt;ceci est un test&lt;/div&gt; exemple: , ceci est un test </computeroutput> </literallayout> @@ -229,8 +230,8 @@ <programlisting role="php"> &lt;?php preg_match_all("|&lt;[^&gt;]+&gt;(.*)&lt;/[^&gt;]+&gt;|U", "&lt;b&gt;exemple: &lt;/b&gt;&lt;div align=left&gt;un test&lt;/div&gt;", $out, PREG_SET_ORDER); -print $out[0][0].", ".$out[0][1]."\n"; -print $out[1][0].", ".$out[1][1]."\n"; +print $out[0][0].", ".$out[0][1]."&#92;n"; +print $out[1][0].", ".$out[1][1]."&#92;n"; ?&gt; </programlisting> </informalexample> @@ -258,8 +259,9 @@ utilis&eacute; par d&eacute;faut. </para> <para> - Retourne le nombre de r&eacute;sultat qui satisfont le masque - complet, ou &false; en cas d'&eacute;chec ou d'erreur. + <function>preg_match_all</function> retourne le nombre de + r&eacute;sultat qui satisfont le masque complet, ou &false; + en cas d'&eacute;chec ou d'erreur. </para> <para> <example> @@ -268,7 +270,7 @@ </title> <programlisting role="php"> &lt;?php -preg_match_all("/\(? (\d{3})? \)? (?(1) [\-\s] ) \d{3}-\d{4}/x", + preg_match_all("/&#92;(? (&#92;d{3})? &#92;)? (?(1) [&#92;-&#92;s] ) &#92;d{3}-&#92;d{4}/x", "Appelez 555-1212 ou 1-800-555-1212", $phones); ?&gt; </programlisting> @@ -279,19 +281,19 @@ <title>Recherche les couples de balises HTML (gourmand)</title> <programlisting role="php"> &lt;?php -// Cet exemple utilise les r&eacute;f&eacute;rences arri&egrave;res (\\2). +// Cet exemple utilise les r&eacute;f&eacute;rences arri&egrave;res (&#92;&#92;2). // Elles indiquent &agrave; l'analyseur qu'il doit trouver quelquechose qu'il // a d&eacute;j&agrave; rep&eacute;r&eacute; un peu plus t&ocirc;t // le nombre 2 indique que c'est le deuxi&egrave;me jeu de parenth&egrave;ses -// capturante qui doit &ecirc;tre utilis&eacute; (ici, ([\w]+)). +// capturante qui doit &ecirc;tre utilis&eacute; (ici, ([&#92;w]+)). // L'antislash est n&eacute;cessaire ici, car la cha&icirc;ne est entre guillemets doubles $html = "&lt;B&gt;Texte en gras&lt;/B&gt;&lt;a href=salut.html&gt;clique moi&lt;/?&gt; -preg_match_all ("/(&lt;([\w]+)[?&gt;]?&gt;)(.*)(&lt;\/\\?&gt;)/", $html, $matches); +preg_match_all ("/(&lt;([&#92;w]+)[?&gt;]?&gt;)(.*)(&lt;&#92;/&#92;&#92;?&gt;)/", $html, $matches); for ($i=0; $i&lt; count($matches[0]); $i++) { - echo "trouv&eacute;: ".$matches[0][$i]."\n"; - echo "partie 1: ".$matches[1][$i]."\n"; - echo "partie 2: ".$matches[3][$i]."\n"; - echo "partie 3: ".$matches[4][$i]."\n\n"; + echo "trouv&eacute;: ".$matches[0][$i]."&#92;n"; + echo "partie 1: ".$matches[1][$i]."&#92;n"; + echo "partie 2: ".$matches[3][$i]."&#92;n"; + echo "partie 3: ".$matches[4][$i]."&#92;n&#92;n"; } ?&gt; </programlisting> @@ -309,7 +311,8 @@ </computeroutput> </para> <simpara> - Voir aussi <function>preg_match</function>, + Voir aussi + <function>preg_match</function>, <function>preg_replace</function> et <function>preg_split</function>. </simpara> @@ -342,15 +345,15 @@ </para> <para> <parameter>replacement</parameter> peut contenir des r&eacute;f&eacute;rences - de la forme <literal>\\<replaceable>n</replaceable></literal> ou, + de la forme <literal>&#92;&#92;<replaceable>n</replaceable></literal> ou, depuis PHP 4.0.4) <literal><replaceable>$n</replaceable></literal>. Cette derni&egrave;re forme est recommand&eacute;e. Ces r&eacute;f&eacute;rences seront remplac&eacute;es par le texte captur&eacute; par la <replaceable>n</replaceable>'-i&egrave;me parenth&egrave;se capturante du masque. <replaceable>n</replaceable> peut prendre des valeurs de 0 &agrave; - 99, et <literal>\\0</literal> ou <literal>$0</literal>, correspondent + 99, et <literal>&#92;&#92;0</literal> ou <literal>$0</literal>, correspondent au texte de qui satisfait le masque complet. Les parenth&egrave;ses - ouvrantes sont compt&eacute;es de gauche &agrave; droite (en commencant + ouvrantes sont compt&eacute;es de gauche &agrave; droite (en commen&ccedil;ant &agrave; 1) pour d&eacute;terminer le num&eacute;ro de parenth&egrave;se capturante. </para> @@ -383,7 +386,7 @@ <literal>/e</literal> force <function>preg_replace</function> &agrave; traiter <parameter>replacement</parameter> comme du code PHP une fois que les substitutions ad&eacute;quates ont - &eacute;t&eacute; faites. Conseil :assurez vous que + &eacute;t&eacute; faites. Conseil :assurez-vous que <parameter>replacement</parameter> est un code PHP valide, car sinon, PHP trouvera une erreur d'analyse (parse error) dans cette ligne. </para> @@ -400,9 +403,9 @@ <title>Remplacement de plusieurs valeurs</title> <programlisting role="php"> &lt;?php -$patterns = array ("/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/", - "/^\s*{(\w+)}\s*=/"); -$replace = array ("\\3/\\4/\\1\\2", "$\\1 ="); +$patterns = array ("/(19|20)(&#92;d{2})-(&#92;d{1,2})-(&#92;d{1,2})/", + "/^&#92;s*{(&#92;w+)}&#92;s*=/"); +$replace = array ("&#92;&#92;3/&#92;&#92;4/&#92;&#92;1&#92;&#92;2", "$&#92;&#92;1 ="); print preg_replace ($patterns, $replace, "{startDate} = 1999-5-27"); ?&gt; </programlisting> @@ -415,7 +418,7 @@ <title>Utilisation de l'option /e </title> <programlisting role="php"> &lt;?php -preg_replace("/(<\/?)(\w+)([^>]*&gt;/e", "'\\1'.strtoupper('\\2').'\\3'", $html_body); + preg_replace("/(&lt;&#92;/?)(&#92;w+)([^&gt;]*&gt;/e", "'&#92;&#92;1'.strtoupper('&#92;&#92;2').'&#92;&#92;3'", $html_body); ?&gt; </programlisting> <para> @@ -428,12 +431,12 @@ &lt;?php // $document contient un document HTML // Ce script va effacer les balises HTML, les javascript -// et les espaces. Il remplace aussi queqlues entit&eacute;es HTML +// et les espaces. Il remplace aussi quelques entit&eacute;s HTML // courante en leur &eacute;quivalent texte. $search = array ("'&lt;script[?&gt;]*?&gt;.*?&lt;/script&gt;'si", // Supprime le javascript - "'&lt;[\/\!]*?[^&lt?&gt;]*?&gt;'si", // Supprime les balises HTML - "'([\r\n])[\s]+'", // Supprime les espaces - "'&amp;(quot|#34);'i", // Supprime les entitees HTML + "'&lt;[&#92;/&#92;!]*?[^&lt?&gt;]*?&gt;'si", // Supprime les balises HTML + "'([&#92;r&#92;n])[&#92;s]+'", // Supprime les espaces + "'&amp;(quot|#34);'i", // Supprime les entites HTML "'&amp;(amp|#38);'i", "'&amp;(lt|#60);'i", "'&amp;(gt|#62);'i", @@ -442,11 +445,11 @@ "'&amp;(cent|#162);'i", "'&amp;(pound|#163);'i", "'&amp;(copy|#169);'i", - "'&amp;#(\d+);'e"); // Evaluation comme PHP + "'&amp;#(&#92;d+);'e"); // Evaluation comme PHP $replace = array ("", "", - "\\1", - "\"", + "&#92;&#92;1", + "&#92;"", "&amp;", "&lt;", ?&gt;", @@ -455,7 +458,7 @@ chr(162), chr(163), chr(169), - "chr(\\1)"); + "chr(&#92;&#92;1)"); $text = preg_replace ($search, $replace, $document); ?&gt; </programlisting> @@ -468,9 +471,10 @@ </para> </note> <para> - Voir aussi <function>preg_match</function>, - <function>preg_match_all</function> - et <function>preg_split</function>. + Voir aussi + <function>preg_match</function>, + <function>preg_match_all</function> et + <function>preg_split</function>. </para> </refsect1> </refentry> @@ -572,7 +576,7 @@ <note> <para> Le param&egrave;tre <parameter>flags</parameter> a &eacute;t&eacute; - ajout&eacute; dans PHP Beta 3. + ajout&eacute; en PHP Beta 3. </para> </note> <para> @@ -581,25 +585,33 @@ <programlisting role="php"> &lt;?php // scinde la phrase gr&acirc;ce aux virgules et espacements -// ce qui inclus les " ", \r, \t, \n et \f -$keywords = preg_split ("/[\s,]+/", "langage hypertexte, programmation"); +// ce qui inclus les " ", &#92;r, &#92;t, &#92;n et &#92;f +$keywords = preg_split ("/[&#92;s,]+/", "langage hypertexte, programmation"); ?&gt; </programlisting> </example> </para> <para> - Scinder une cha&icirc;ne en caract&egrave;res - </para> - <programlisting role="php"> + <example> + <title>Scinder une cha&icirc;ne en caract&egrave;res</title> + <programlisting role="php"> &lt;?php $str = 'string'; $chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY); print_r($chars); ?&gt; - </programlisting> + </programlisting> + </example> + </para> <para> - Voir aussi <function>preg_match</function>, <function>preg_match_all</function> - et <function>preg_replace</function>. + Voir aussi + <function>explode</function>, + <function>spliti</function>, + <function>split</function>, + <function>implode</function>, + <function>preg_match</function>, + <function>preg_match_all</function> et + <function>preg_replace</function>. </para> </refsect1> </refentry> @@ -637,7 +649,7 @@ </para> <para> Les caract&egrave;res sp&eacute;ciaux qui seront &eacute;chapp&eacute;s : - <screen>. \\ + * ? [ ^ ] $ ( ) { } = ! &lt; &gt; | :</screen> + <screen>. &#92;&#92; + * ? [ ^ ] $ ( ) { } = ! &lt; &gt; | :</screen> </para> <para> <example> @@ -646,7 +658,7 @@ &lt;?php $keywords = "$40 pour un g3/400"; $keywords = preg_quote ($keywords, "/"); -echo $keywords; // retourne \$40 pour un g3\/400 +echo $keywords; // retourne &#92;$40 pour un g3&#92;/400 ?&gt; </programlisting> </example> @@ -699,7 +711,7 @@ <programlisting role="php"> &lt;?php // recherche les nombres &agrave; virgule flottante -preg_grep("/^(\d+)?\.\d+$/", $array); +preg_grep("/^(&#92;d+)?&#92;.&#92;d+$/", $array); ?&gt; </programlisting> </example> @@ -716,7 +728,7 @@ <refsect1> <title>Description</title> <para> - Les options de PCRE sont list&eacute;es ci dessous. Les noms entre + Les options de PCRE sont list&eacute;es ci-dessous. Les noms entre parenth&egrave;ses sont les noms internes &agrave; PCRE. </para> <para> @@ -740,7 +752,7 @@ valable qu'une seule fois, au d&eacute;but de la ligne, et le m&eacute;ta caract&egrave;re "fin de ligne " ($) ne sera valable qu'&agrave; la fin de la cha&icirc;ne, ou avant le retour chariot - final (&agrave; moins que l'option E ne soit activ&eacute;e). C'est le + final (&agrave; moins que l'option D ne soit activ&eacute;e). C'est le m&ecirc;me fonctionnement qu'en Perl. </simpara> <simpara> @@ -749,9 +761,9 @@ suivant et pr&eacute;c&eacute;dent imm&eacute;diatement un caract&egrave;re de nouvelle ligne, en plus du d&eacute;but et de la fin de la cha&icirc;ne. C'est le m&ecirc;me - fonctionnement que l'option Perl /m. Si il n'y a pas de - caract&egrave;re de nouvelle ligne "\n" dans la cha&icirc;ne sujet, - ou si il n'y a aucune occurrence de ^ ou $ dans le masque, cette option + fonctionnement que l'option Perl /m. S'il n'y a pas de + caract&egrave;re de nouvelle ligne "&#92;n" dans la cha&icirc;ne sujet, + ou s'il n'y a aucune occurrence de ^ ou $ dans le masque, cette option ne sert &agrave; rien. </simpara> </listitem> @@ -810,8 +822,7 @@ <term><emphasis>A</emphasis> (PCRE_ANCHORED)</term> <listitem> <simpara> - Avec cette option, le masque est ancr&eacute; de force, c'est - &agrave; dire que le masque doit s'appliquer entre le d&eacute;but + Avec cette option, le masque est ancr&eacute; de force, c'est-&agrave;-dire que le masque doit s'appliquer entre le d&eacute;but et la fin de la cha&icirc;ne sujet pour &ecirc;tre consid&eacute;r&eacute; comme trouv&eacute;. Il est possible de r&eacute;aliser le m&ecirc;me effet en @@ -872,11 +883,22 @@ permettant la r&eacute;servation de ces combinaisons pour des ajouts fonctionnels ult&eacute;rieurs. Par d&eacute;faut, comme en Perl, les antislash suivis d'une lettre sans signification particuli&egrave;re - sont trait&eacute;s comme des valeurs lit&eacute;rales. Actuellement, + sont trait&eacute;s comme des valeurs litt&eacute;rales. Actuellement, cette option ne d&eacute;clenche pas d'autres fonctions. </simpara> </listitem> </varlistentry> + <varlistentry> + <term><emphasis>u</emphasis> (PCRE_UTF8)</term> + <listitem> + <simpara> + Cette option inactive les fonctionnalit&eacute;s additionnelles de + PCRE qui ne sont pas compatibles avec Perl. Les cha&icirc;nes sont + trait&eacute;es comme des cha&icirc;nes UTF-8. Cette option est disponible en + PHP 4.0.7 et plus r&eacute;cent. + </simpara> + </listitem> + </varlistentry> </variablelist> </blockquote> </para> @@ -914,11 +936,11 @@ &true; pour les espaces, les retours chariot, les nouvelles lignes, les formfeed, les tabulations verticales et horizontales. Le Perl 5 n'accepte plus la tabulation verticale comme caract&egrave;re - d'espacement. La s&eacute;quence \v qui &eacute;tait dans la documentation + d'espacement. La s&eacute;quence &#92;v qui &eacute;tait dans la documentation Perl depuis longtemps n'a jamais &eacute;t&eacute; reconnue. Cependant, la tabulation verticale elle-m&ecirc;me &eacute;tait reconnue comme un caract&egrave;re d'espacement jusqu'&agrave; la version 5.002. Avec les - version 5.004 et 5.005, l'option \s l'ignore. + version 5.004 et 5.005, l'option &#92;s l'ignore. </simpara> </listitem> <listitem> @@ -946,21 +968,21 @@ cha&icirc;ne de recherche, ils ne sont pas accept&eacute;s dans le masque, car le masque est utilis&eacute; comme une cha&icirc;ne C standard, termin&eacute;e par le caract&egrave;re nul. Il faut donc utiliser la - s&eacute;quence d'&eacute;chappement "\0" dans le masque pour rechercher + s&eacute;quence d'&eacute;chappement "&#92;0" dans le masque pour rechercher les caract&egrave;res nul. </simpara> </listitem> <listitem> <simpara> Les s&eacute;quence d'&eacute;chappement suivantes ne sont pas support&eacute;es - par le Perl: \l, \u, \L, \U, \E, \Q. En fait, elles sont impl&eacute;ment&eacute;es + par le Perl: &#92;l, &#92;u, &#92;L, &#92;U, &#92;E, &#92;Q. En fait, elles sont impl&eacute;ment&eacute;es par la gestion intrins&egrave;que de cha&icirc;nes du Perl, et ne font pas partie de ses caract&egrave;res sp&eacute;ciaux. </simpara> </listitem> <listitem> <simpara> - L'assertion \G du Perl n'est pas support&eacute;e car elle n'est pas pertinente + L'assertion &#92;G du Perl n'est pas support&eacute;e car elle n'est pas pertinente pour faire des recherches avec des masques uniques. </simpara> </listitem> @@ -1010,7 +1032,7 @@ activ&eacute;, et que <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> n'est pas activ&eacute;, le m&eacute;ta caract&egrave;re <literal>$</literal> ne s'applique qu'&agrave; la fin - physqiue de la cha&icirc;ne, et non pas avant les caract&egrave;res + physique de la cha&icirc;ne, et non pas avant les caract&egrave;res de nouvelle ligne. </simpara> </listitem> @@ -1026,7 +1048,7 @@ (d) SI <link linkend="pcre.pattern.modifiers">PCRE_UNGREEDY</link> est activ&eacute;, la "gourmandise" des quantificateurs de r&eacute;p&eacute;tition est invers&eacute;es, ce qui est rend non - gourmand par d&eacute;faut, mais si ils sont suivis de ?, il seront + gourmand par d&eacute;faut, mais s'ils sont suivis de ?, il seront gourmands. </simpara> </listitem> @@ -1052,7 +1074,7 @@ </simpara> <simpara> Une expression r&eacute;guli&egrave;re est un masque, appliqu&eacute; &agrave; - une cha&icirc;ne sujet, de gauche &agrave; droite. La plus part des + une cha&icirc;ne sujet, de gauche &agrave; droite. La plupart des caract&egrave;res se repr&eacute;sentent eux-m&ecirc;mes. Un exemple trivial : un masque qui serait "<literal>Le rapide renard gris</literal>", pourra correspondre &agrave; une partie de la cha&icirc;ne sujet qui sera @@ -1072,7 +1094,7 @@ </para> <para> Il y a deux sortes de m&eacute;ta-caract&egrave;res : ceux qui sont - reconnus n'importe o&uacute; dans un masque, hormis entre crochets, + reconnus n'importe o&ugrave; dans un masque, hormis entre crochets, et ceux qui sont reconnus entre crochets. </para> <para> @@ -1199,7 +1221,7 @@ les seuls m&eacute;ta caract&egrave;res autoris&eacute;s sont : <variablelist> <varlistentry> - <term><emphasis>\</emphasis> Antislash</term> + <term><emphasis>&#92;</emphasis> Antislash</term> <listitem> <simpara> Caract&egrave;re d'&eacute;chappement, avec de multiples usages @@ -1249,13 +1271,13 @@ &agrave; l'int&eacute;rieur et &agrave; l'ext&eacute;rieur des classes de caract&egrave;res. Par exemple, pour recherche le caract&egrave;re &eacute;toile "<literal>*</literal>", il faut - &eacute;crire dans le masque : "<literal>\*</literal>". Cela + &eacute;crire dans le masque : "<literal>&#92;*</literal>". Cela s'applique dans tous les cas, que le caract&egrave;re qui suive soit un m&eacute;ta-caract&egrave;re ou non. C'est un moyen s&ucirc;r pour s'assurer qu'un caract&egrave;re sera recherch&eacute; - pour sa valeur lit&eacute;rale, plut&ocirc;t que pour sa valeur + pour sa valeur litt&eacute;rale, plut&ocirc;t que pour sa valeur sp&eacute;ciale. En particulier, pour rechercher les antislash, - il faut &eacute;crire : "<literal>\\</literal>". + il faut &eacute;crire : "<literal>&#92;&#92;</literal>". </para> <para> Si un masque est utilis&eacute; avec l'option @@ -1279,15 +1301,15 @@ plut&ocirc;t que le caract&egrave;re binaire qu'elle repr&eacute;sente : <variablelist> <varlistentry> - <term><emphasis>\a</emphasis></term> + <term><emphasis>&#92;a</emphasis></term> <listitem> <simpara> - alarme, c'est &agrave; dire le caract&egrave;re BEL (hex 07) + alarme, c'est-&agrave;-dire le caract&egrave;re BEL (hex 07) </simpara> </listitem> </varlistentry> <varlistentry> - <term><emphasis>\cx</emphasis></term> + <term><emphasis>&#92;cx</emphasis></term> <listitem> <simpara> "control-x", avec x qui peut &ecirc;tre n'importe quel caract&egrave;re. @@ -1295,7 +1317,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\e</emphasis></term> + <term><emphasis>&#92;e</emphasis></term> <listitem> <simpara> escape (hex 1B) @@ -1303,7 +1325,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\f</emphasis></term> + <term><emphasis>&#92;f</emphasis></term> <listitem> <simpara> formfeed (hex 0C) @@ -1311,7 +1333,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\n</emphasis></term> + <term><emphasis>&#92;n</emphasis></term> <listitem> <simpara> nouvelle ligne (hex 0A) @@ -1319,7 +1341,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\r</emphasis></term> + <term><emphasis>&#92;r</emphasis></term> <listitem> <simpara> retour chariot (hex 0D) @@ -1327,7 +1349,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\t</emphasis></term> + <term><emphasis>&#92;t</emphasis></term> <listitem> <simpara> tabulation (hex 09) @@ -1335,7 +1357,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\xhh</emphasis></term> + <term><emphasis>&#92;xhh</emphasis></term> <listitem> <simpara> caract&egrave;re en hexad&eacute;cimal, de code hh @@ -1343,7 +1365,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\ddd</emphasis></term> + <term><emphasis>&#92;ddd</emphasis></term> <listitem> <simpara> caract&egrave;re en octal, de code ddd, ou r&eacute;f&eacute;rence arri&egrave;re @@ -1353,30 +1375,30 @@ </variablelist> </para> <para> - Dans la s&eacute;quence "<literal>\cx</literal>" si "<literal>x</literal>" + Dans la s&eacute;quence "<literal>&#92;cx</literal>" si "<literal>x</literal>" est en minuscule, il est converti en majuscule. Puis, le bit 6 (hex 40) - est invers&eacute;. Ainsi "<literal>\cz</literal>" devient <literal>1A</literal>, - mais "<literal>\c{</literal>" devient hex 3B, tandis que "<literal>\c;</literal>" + est invers&eacute;. Ainsi "<literal>&#92;cz</literal>" devient <literal>1A</literal>, + mais "<literal>&#92;c{</literal>" devient hex 3B, tandis que "<literal>&#92;c;</literal>" devient hex 7B. </para> <para> - Apr&egrave;s "<literal>\x</literal>", deux caract&egrave;res + Apr&egrave;s "<literal>&#92;x</literal>", deux caract&egrave;res hexad&eacute;cimaeux sont lus (les lettres peuvent &ecirc;tre en majuscule ou minuscule). </para> <para> - Apr&egrave;s "<literal>\0</literal>", deux caract&egrave;res octal sont lus. + Apr&egrave;s "<literal>&#92;0</literal>", deux caract&egrave;res octal sont lus. Dans chacun des cas, le m&eacute;ta-caract&egrave;re tente de lire autant de caract&egrave;re que possible. Ainsi la s&eacute;quence - "<literal>\0\x\07</literal>", sera comprise comme deux caract&egrave;res nuls, - suivi d'un caract&egrave;re alarme (BEL). Assurez vous que vous fournissez + "<literal>&#92;0&#92;x&#92;07</literal>", sera comprise comme deux caract&egrave;res nuls, + suivi d'un caract&egrave;re alarme (BEL). Assurez-vous que vous fournissez suffisamment de chiffres apr&egrave;s le m&eacute;ta-caract&egrave;re. </para> <para> - La gestion de la s&eacute;quence "<literal>\y</literal>", avec y &lt;&gt; 0 + La gestion de la s&eacute;quence "<literal>&#92;y</literal>", avec y &lt;&gt; 0 est plut&ocirc;t compliqu&eacute;e. En dehors des caract&egrave;res de classes, PCRE va lire y et tous les caract&egrave;res qui suivent comme des chiffres - d&eacute;cimaux. Si y est plus petit que 10, ou bien si il y a + d&eacute;cimaux. Si y est plus petit que 10, ou bien s'il y a d&eacute;j&agrave; eu au moins autant de parenth&egrave;ses ouvrantes auparavant, la s&eacute;quence est prise pour une r&eacute;f&eacute;rence arri&egrave;re. Le d&eacute;tail sera vu ult&eacute;rieurement, apr&egrave;s la @@ -1386,13 +1408,13 @@ A l'int&eacute;rieur d'un caract&egrave;re de classe, ou si y est plus grand que 10, et qu'il n'y a pas eu assez de parenth&egrave;ses ouvrantes auparavant, PCRE lis jusqu'&agrave; 3 chiffres octals &agrave; la suite - de l'antislash, et g&eacute;n&eacute;re un octet unique, &agrave; partir + de l'antislash, et g&eacute;n&egrave;re un octet unique, &agrave; partir des 8 bits de poids faible de la s&eacute;quence. Tous les chiffres qui suivent ne sont pas interpr&eacute;t&eacute;s, et se representent eux-m&ecirc;mes. Par exemple: <variablelist> <varlistentry> - <term><emphasis>\040</emphasis></term> + <term><emphasis>&#92;040</emphasis></term> <listitem> <simpara> une autre mani&egrave;re d'&eacute;crire un espace @@ -1400,16 +1422,16 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\40</emphasis></term> + <term><emphasis>&#92;40</emphasis></term> <listitem> <simpara> - identique, dans la mesure o&uacute; il n'y a pas 40 parenth&egrave;ses + identique, dans la mesure o&ugrave; il n'y a pas 40 parenth&egrave;ses ouvrantes auparavant </simpara> </listitem> </varlistentry> <varlistentry> - <term><emphasis>\7</emphasis></term> + <term><emphasis>&#92;7</emphasis></term> <listitem> <simpara> est toujours une r&eacute;f&eacute;rence arri&egrave;re @@ -1417,7 +1439,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\11</emphasis></term> + <term><emphasis>&#92;11</emphasis></term> <listitem> <simpara> peut &ecirc;tre une r&eacute;f&eacute;rence de retour, @@ -1426,7 +1448,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\011</emphasis></term> + <term><emphasis>&#92;011</emphasis></term> <listitem> <simpara> toujours une tabulation @@ -1434,7 +1456,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\0113</emphasis></term> + <term><emphasis>&#92;0113</emphasis></term> <listitem> <simpara> est une tabulation suivi du caract&egrave;re "3" @@ -1442,7 +1464,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\113</emphasis></term> + <term><emphasis>&#92;113</emphasis></term> <listitem> <simpara> est le caract&egrave;re 113 (&eacute;tant donn&eacute; qu'il ne @@ -1451,7 +1473,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\377</emphasis></term> + <term><emphasis>&#92;377</emphasis></term> <listitem> <simpara> est un octet dont tous les bits sont &agrave; 1 @@ -1459,7 +1481,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\0113</emphasis></term> + <term><emphasis>&#92;0113</emphasis></term> <listitem> <simpara> peut &ecirc;tre soit une r&eacute;f&eacute;rence arri&egrave;re, @@ -1478,7 +1500,7 @@ Toutes les s&eacute;quences qui d&eacute;finissent une valeur d'un seul octet peuvent &ecirc;tre utilis&eacute; dans les classes de caract&egrave;res, et &agrave; l'ext&eacute;rieur. De plus, dans une classe de caract&egrave;res, - la s&eacute;quence "<literal>\b</literal>" est interpr&eacute;t&eacute;e + la s&eacute;quence "<literal>&#92;b</literal>" est interpr&eacute;t&eacute;e comme un caract&egrave;re effacer (backspace, hex 08). A l'ext&eacute;rieur d'une classe de caract&egrave;res, il peut avoir d'autres significations (voir ci-dessous). @@ -1488,7 +1510,7 @@ g&eacute;n&eacute;riques de valeurs : <variablelist> <varlistentry> - <term><emphasis>\d</emphasis></term> + <term><emphasis>&#92;d</emphasis></term> <listitem> <simpara> tout caract&egrave;re d&eacute;cimal @@ -1496,7 +1518,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\D</emphasis></term> + <term><emphasis>&#92;D</emphasis></term> <listitem> <simpara> tout caract&egrave;re qui n'est pas un caract&egrave;re d&eacute;cimal @@ -1504,7 +1526,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\S</emphasis></term> + <term><emphasis>&#92;S</emphasis></term> <listitem> <simpara> tout caract&egrave;re blanc @@ -1512,7 +1534,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\s</emphasis></term> + <term><emphasis>&#92;s</emphasis></term> <listitem> <simpara> tout caract&egrave;re qui n'est pas un caract&egrave;re blanc @@ -1520,7 +1542,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\W</emphasis></term> + <term><emphasis>&#92;W</emphasis></term> <listitem> <simpara> tout caract&egrave;re de "mot" @@ -1528,7 +1550,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\w</emphasis></term> + <term><emphasis>&#92;w</emphasis></term> <listitem> <simpara> tout caract&egrave;re qui n'est pas un caract&egrave;re de "mot" @@ -1545,7 +1567,7 @@ </para> <para> Un caract&egrave;re de "mot" sera une lettre, un chiffre ou le - caract&egrave;re soulign&eacute;, c'est &agrave; dire un + caract&egrave;re soulign&eacute;, c'est-&agrave;-dire un caract&egrave;re qui pourra &ecirc;tre une partie d'un mot Perl. La d&eacute;finition des lettres et chiffres est d&eacute;finie par les tables de caract&egrave;res de PCRE, et peut varier suivant la table @@ -1553,7 +1575,7 @@ ci-dessus. Par exemple, dans la configuration fran&ccedil;ais ("fr"), certains caract&egrave;res ont des codes sup&eacute;rieurs &agrave; 128, pour les caract&egrave;res accentu&eacute;s, et ils seront compris - par le m&eacute;ta caract&egrave;re <literal>\w</literal>. + par le m&eacute;ta caract&egrave;re <literal>&#92;w</literal>. </para> <para> Ces s&eacute;quences de caract&egrave;res peuvent appara&icirc;tre &agrave; @@ -1571,7 +1593,7 @@ plus-bas. Les assertions avec antislash sont les suivantes : <variablelist> <varlistentry> - <term><emphasis>\b</emphasis></term> + <term><emphasis>&#92;b</emphasis></term> <listitem> <simpara> limite de mot @@ -1579,7 +1601,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\B</emphasis></term> + <term><emphasis>&#92;B</emphasis></term> <listitem> <simpara> pas limite de mot @@ -1587,7 +1609,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\A</emphasis></term> + <term><emphasis>&#92;A</emphasis></term> <listitem> <simpara> d&eacute;but de la cha&icirc;ne sujet @@ -1596,7 +1618,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\Z</emphasis></term> + <term><emphasis>&#92;Z</emphasis></term> <listitem> <simpara> fin de la cha&icirc;ne sujet ou nouvelle ligne &agrave; @@ -1606,7 +1628,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\z</emphasis></term> + <term><emphasis>&#92;z</emphasis></term> <listitem> <simpara> fin de la cha&icirc;ne sujet @@ -1618,27 +1640,27 @@ </para> <para> Ces assertions ne peuvent pas appara&icirc;tre dans une classe de - caract&egrave;res (mais "\b" a une autre signification &agrave; + caract&egrave;res (mais "&#92;b" a une autre signification &agrave; l'int&eacute;rieur d'une classe de caract&egrave;res). </para> <para> Une limite de mot est un emplacement dans la cha&icirc;ne sujet ou un caract&egrave;re et son suivant ne sont pas en m&ecirc;me temps des caract&egrave;res de mot, ou le contraire (on peut le voir comme - <literal>\w\W</literal> ou <literal>\W\w</literal>), ou encore le + <literal>&#92;w&#92;W</literal> ou <literal>&#92;W&#92;w</literal>), ou encore le premier ou le dernier caract&egrave;re est un caract&egrave;re mot. </para> <para> - Les assertions <literal>\A</literal>, <literal>\Z</literal>, et - <literal>\z</literal> diff&egrave;rent des m&eacute;ta caract&egrave;res - <literal>^</literal> et <literal>$</literal> dans la mesure o&uacute; + Les assertions <literal>&#92;A</literal>, <literal>&#92;Z</literal>, et + <literal>&#92;z</literal> diff&egrave;rent des m&eacute;ta caract&egrave;res + <literal>^</literal> et <literal>$</literal> dans la mesure o&ugrave; ils ne sont pas d&eacute;pendants des options, notamment <link linkend="pcre.pattern.modifiers">PCRE_NOTBOL</link> ou <link linkend="pcre.pattern.modifiers">PCRE_NOTEOL</link>. - La diff&eacute;rence entre <literal>\Z</literal> et - <literal>\z</literal> tient au fait que <literal>\Z</literal> recherche + La diff&eacute;rence entre <literal>&#92;Z</literal> et + <literal>&#92;z</literal> tient au fait que <literal>&#92;Z</literal> recherche les positions avant les nouvelles lignes et &agrave; la fin de la - cha&icirc;ne sujet, tandis que <literal>\z</literal> ne recherche + cha&icirc;ne sujet, tandis que <literal>&#92;z</literal> ne recherche que la fin de la cha&icirc;ne. </para> </refsect2> @@ -1683,17 +1705,17 @@ fin de la cha&icirc;ne sujet. Cela se fait en ajoutant l'option <link linkend="pcre.pattern.modifiers">PCRE_DOLLAR_ENDONLY</link> au moment de la compilation, ou de l'ex&eacute;cution. - Cette option est inop&eacute;rante sur <literal>\Z</literal>. + Cette option est inop&eacute;rante sur <literal>&#92;Z</literal>. </para> <para> La signification de <literal>^</literal> peut changer, de mani&egrave;re &agrave; l'amener &agrave; ce qu'il puisse se trouver imm&eacute;diatement avant et imm&eacute;diatement apr&egrave;s un caract&egrave;re de nouvelle - ligne "<literal>\n</literal>". Cela se fait en ajoutant l'option + ligne "<literal>&#92;n</literal>". Cela se fait en ajoutant l'option <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> au moment de la compilation ou de l'ex&eacute;cution. Par exemple, le masque <literal>/^abc$/</literal> accepte la cha&icirc;ne - "<literal>def\nabc</literal>" uniquement en mode multi-lignes. Par + "<literal>def&#92;nabc</literal>" uniquement en mode multi-lignes. Par cons&eacute;quent, toutes les parties du masques qui commencent par "<literal>^</literal>" ne sont pas ancr&eacute;es, en mode multi-lignes. L'option <link linkend="pcre.pattern.modifiers">PCRE_DOLLAR_ENDONLY</link> @@ -1701,10 +1723,10 @@ <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> est choisie. </para> <para> - Notez que les m&eacute;ta caract&egrave;res <literal>\A</literal>, - <literal>\Z</literal>, et <literal>\z</literal> peuvent servir &agrave; + Notez que les m&eacute;ta caract&egrave;res <literal>&#92;A</literal>, + <literal>&#92;Z</literal>, et <literal>&#92;z</literal> peuvent servir &agrave; r&eacute;p&eacute;rer le d&eacute;but et la fin du sujet, et toutes les - parties du masque qui commenceront par <literal>\A</literal> seront toujours + parties du masque qui commenceront par <literal>&#92;A</literal> seront toujours ancr&eacute;es, avec l'option <link linkend="pcre.pattern.modifiers">PCRE_MULTILINE</link> ou non. </para> @@ -1779,17 +1801,17 @@ requis dans une classe, il faut l'&eacute;chapper avec un antislash, ou le faire appara&icirc;tre &agrave; une position ou il ne pourra pas &ecirc;tre interpr&eacute;t&eacute; comme une indication d'intervalle, - c'est &agrave; dire au d&eacute;but ou &agrave; la fin de la classe. + c'est-&agrave;-dire au d&eacute;but ou &agrave; la fin de la classe. </para> <para> Il n'est pas possible d'avoir le caract&egrave;re crochet fermant "<literal>]</literal>" comme fin d'intervalle. Un masque tel que <literal>[W-]46]</literal> est compris comme la classe de caract&egrave;res contenant deux caract&egrave;res ("W" et "-") suivi de la cha&icirc;ne - lit&eacute;rale "46]", ce qui fait qu'il va accepter + litt&eacute;rale "46]", ce qui fait qu'il va accepter "<literal>W46]</literal>" ou "<literal>-46]</literal>". Cependant, si "<literal>]</literal>" est &eacute;chapp&eacute; avec un antislash, le - masque <literal>[W-\]46]</literal> est interpr&eacute;t&eacute; comme + masque <literal>[W-&#92;]46]</literal> est interpr&eacute;t&eacute; comme une classe d'un seul caract&egrave;re, contenant un intervalle de caract&egrave;res. </para> @@ -1798,27 +1820,27 @@ aussi &ecirc;tre utilis&eacute;e pour d&eacute;terminer les limites de l'intervalle. Les intervalles travaillent sur des s&eacute;quences ASCII. Ils peuvent aussi &ecirc;tre pr&eacute;cis&eacute;es - avec des valeurs num&eacute;riques, par exemple "<literal>[\000-\037]</literal>". + avec des valeurs num&eacute;riques, par exemple "<literal>[&#92;000-&#92;037]</literal>". Si cet intervalle inclus des lettres utilis&eacute;es avec une option d'insensibilit&eacute; de casse, les majuscules ou minuscules correspondantes seront aussi incluses. Par exemple, "<literal>[C-c]</literal>" - est &eacute;quivalent &eacute; "<literal>[][\^_`wxyzabc]</literal>", + est &eacute;quivalent &eacute; "<literal>[][&#92;^_`wxyzabc]</literal>", avec l'option d'insensibilit&eacute; de casse. Si la table locale de - caract&egrave;res est "fr", "<literal>[\xc8-\xcb]</literal>" correspond + caract&egrave;res est "fr", "<literal>[&#92;xc8-&#92;xcb]</literal>" correspond aux caract&egrave;res accentu&eacute;s. </para> <para> - Les types de caract&egrave;res <literal>\d</literal>, - <literal>\D</literal>, <literal>\S</literal>, <literal>\s</literal>, - <literal>\w</literal>, <literal>\W</literal> peuvent aussi intervenir + Les types de caract&egrave;res <literal>&#92;d</literal>, + <literal>&#92;D</literal>, <literal>&#92;S</literal>, <literal>&#92;s</literal>, + <literal>&#92;w</literal>, <literal>&#92;W</literal> peuvent aussi intervenir dans les classes de caract&egrave;res. Par exemple, - "<literal>[][\^_`wxyzabc][\dABCDEF]</literal>" acceptera n'importe + "<literal>[][&#92;^_`wxyzabc][&#92;dABCDEF]</literal>" acceptera n'importe quel caract&egrave;re hexad&eacute;cimal. Un accent circonflexe peut aussi &ecirc;tre utilis&eacute; pour sp&eacute;cifier adroitement des ensembles de caract&egrave;res plus restrictifs : par exemple - <literal>[^\W_]</literal> accepte toutes les lettres et les chiffres, + <literal>[^&#92;W_]</literal> accepte toutes les lettres et les chiffres, mais pas les soulign&eacute;s. Tous les caract&egrave;res non alpha- - num&eacute;riques autres que <literal>\, -, ^</literal> (plac&eacute;s + num&eacute;riques autres que <literal>&#92;, -, ^</literal> (plac&eacute;s en d&eacute;but de cha&icirc;ne) et <literal>]</literal> n'ont pas de signification particuli&egrave;re, mais ils ne perdront rien &agrave; &ecirc;tre &eacute;chapp&eacute;s. @@ -1909,7 +1931,7 @@ <link linkend="pcre.pattern.modifiers">PCRE_CASELESS</link>. En d'autres termes, activer des s&eacute;quences d'options dans le corps principal du masque revient &agrave; appliquer l'option &agrave; tout le masque, sauf - ordre contraire dans les sous-masques. Si il y a plusieurs s&eacute;quences + ordre contraire dans les sous-masques. S'il y a plusieurs s&eacute;quences d'options qui portent sur la m&ecirc;me option, la derni&egrave;re s'appliquera. </para> <para> @@ -1962,7 +1984,7 @@ cha&icirc;ne sujet est accept&eacute;e par le masque complet, les sous-masques sont transmis &agrave; l'appelant gr&acirc;ce &agrave; un vecteur de sous-masques. Les parenth&egrave;ses ouvrantes sont - compt&eacute;es de gauche &agrave; droite, (commencant &agrave; 1). + compt&eacute;es de gauche &agrave; droite, (commen&ccedil;ant &agrave; 1). Par exemple, soit la cha&icirc;ne sujet "<literal>le roi soleil</literal>" qui est utilis&eacute;e avec le masque suivant : <literal>Le ((roi|prince) (soleil|charmant))</literal> les sous-masques @@ -1971,7 +1993,7 @@ </para> <para> L'ubiquit&eacute; des parenth&egrave;ses n'est pas toujours simple - d'emploi. Il y a des moments o&uacute; regrouper des sous-masques + d'emploi. Il y a des moments o&ugrave; regrouper des sous-masques est n&eacute;cessaire, sans pour autant capturer la valeur trouv&eacute;e. Si une parenth&egrave;se ouvrante est suivie de "<literal>?:</literal>", le sous-masque ne capture pas la cha&icirc;ne assortie, et ne sera pas @@ -2019,7 +2041,7 @@ </listitem> </varlistentry> <varlistentry> - <term><emphasis>\2</emphasis></term> + <term><emphasis>&#92;2</emphasis></term> <listitem> <simpara> Une r&eacute;f&eacute;rence de retour (Voir section suivante) @@ -2045,7 +2067,7 @@ doit &ecirc;tre &eacute;gal ou inf&eacute;rieur au second. Par exemple <literal>z{2,4}</literal> accepte "<literal>zz</literal>", "<literal>zzz</literal>", ou "<literal>zzzz</literal>". L'accolade fermante - n'a pas de signification par elle m&ecirc;me. + n'a pas de signification par elle-m&ecirc;me. </para> <para> Si le second nombre est omis, mais que la virgule est l&agrave;, cela @@ -2053,13 +2075,13 @@ et la virgule sont omis, le quantificateur correspond au nombre exact de r&eacute;p&eacute;tition attendues. Par exemple : accepte n'importe quelle succession d'au moins 3 voyelles minuscules, tandis - que <literal>\d{d}</literal> n'accepte que 8 chiffres exactement. + que <literal>&#92;d{d}</literal> n'accepte que 8 chiffres exactement. </para> <para> - Une accolade ouvrante qui appara&icirc;t &agrave; une position o&uacute; + Une accolade ouvrante qui appara&icirc;t &agrave; une position o&ugrave; un quantificateur n'est pas accept&eacute;, ou si la syntaxe des quantificateurs n'est pas respect&eacute;e, sera consid&eacute;r&eacute;e - lit&eacute;rale. Par exemple, "<literal>{,6}</literal>" n'est pas un + litt&eacute;rale. Par exemple, "<literal>{,6}</literal>" n'est pas un quantificateur, mais une cha&icirc;ne de 4 caract&egrave;res. </para> <para> @@ -2100,7 +2122,7 @@ <para> Les versions plus anciennes de Perl et PCRE g&eacute;n&eacute;raient alors une erreur au moment de la compilation. Cependant, &eacute;tant donn&eacute; - qu'il existe des situations o&uacute; ces constructions peuvent &ecirc;tre + qu'il existe des situations o&ugrave; ces constructions peuvent &ecirc;tre utiles, ces masques sont d&eacute;sormais autoris&eacute;s. Cependant, si la r&eacute;p&eacute;tion du sous-masque ne trouve aucun caract&egrave;re, la boucle est interrompue. @@ -2113,7 +2135,7 @@ commentaires d'un programme en C. Les commentaires apparaissent entre les s&eacute;quences <literal>/*....*/</literal> et &agrave; l'int&eacute;rieur de ces d&eacute;limiteurs, les <literal>*</literal> et <literal>/</literal> - sont autoris&eacute;s. Appliquer le masque <literal>/\*.*\*/</literal> + sont autoris&eacute;s. Appliquer le masque <literal>/&#92;*.*&#92;*/</literal> &agrave; la cha&icirc;ne <literal>/* first commet */ not comment /* second comment */</literal> ne peut r&eacute;ussir, car le masque travaille sur toute la cha&icirc;ne, @@ -2123,14 +2145,14 @@ Cependant, un quantificateur suivi d'un point d'interrogation cesse d'&ecirc;tre gourmand, et au contraire, ne recherche que le nombre minimum de r&eacute;p&eacute;tition. Dans ces conditions, le masque - <literal>/\*.*?\*/</literal> trouvera bien les commentaires du code + <literal>/&#92;*.*?&#92;*/</literal> trouvera bien les commentaires du code C. La signification des autres quantificateurs n'est pas chang&eacute;e. </para> <para> Attention &agrave; ne pas confondre l'utilisation du point d'interrogation - ici avec son utilisation comme quantificateur lui m&ecirc;me. + ici avec son utilisation comme quantificateur lui-m&ecirc;me. A cause cette ambiguit&eacute;, il peut appara&icirc;tre des situations - o&uacute; il faut le doubler : <literal>\d??\d</literal>. Ce masque va + o&ugrave; il faut le doubler : <literal>&#92;d??&#92;d</literal>. Ce masque va tenter de lire un seul chiffre, mais le cas &eacute;ch&eacute;ant, il acceptera 2 chiffres pour permettre &agrave; la recherche d'aboutir. Si l'option <link linkend="pcre.pattern.modifiers">PCRE_UNGREEDY</link> @@ -2152,12 +2174,12 @@ Si un masque commence par <literal>..*</literal> ou <literal>.{0,}</literal> et que l'option <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> (&eacute;quivalent en Perl &agrave; /s) est - activ&eacute;e, c'est &agrave; dire en autorisant le remplacement des nouvelles + activ&eacute;e, c'est-&agrave;-dire en autorisant le remplacement des nouvelles lignes par un m&eacute;ta-caract&egrave;re, alors le masque est implicitement ancr&eacute;, car tout ce qui suit va &ecirc;tre mang&eacute; par la premi&egrave;re s&eacute;quence, et se comportera comme si le masque se terminait par le m&eacute;ta caract&egrave;re - <literal>\A</literal>. Dans le cas o&uacute; on sait d'avance qu'il + <literal>&#92;A</literal>. Dans le cas o&ugrave; on sait d'avance qu'il n'y aura pas de caract&egrave;re de nouvelle ligne, activer l'option <link linkend="pcre.pattern.modifiers">PCRE_DOTALL</link> et commencer le masque par <literal>.*</literal> permet d'optmiser le masque. @@ -2167,7 +2189,7 @@ explicitement le masque. Lorsqu'un sous-masque capturant est r&eacute;p&eacute;t&eacute;, la valeur captur&eacute;e est la derni&egrave;re. Par exemple, apr&egrave;s que - "<literal>(inter[net]{3}\s*)+</literal>" ai &eacute;t&eacute; + "<literal>(inter[net]{3}&#92;s*)+</literal>" ai &eacute;t&eacute; appliqu&eacute; &agrave; "<literal>internet interne</literal>", la valeur de la cha&icirc;ne captur&eacute;e est "<literal>interne</literal>". </para> @@ -2192,14 +2214,14 @@ Cependant, si le nombre d&eacute;cimal suivant l'antislash est plus petit que 10, il sera toujours consid&eacute;r&eacute; comme une r&eacute;f&eacute;rence arri&egrave;re, et cela - g&eacute;n&eacute;rera une erreur si le nombre de capture + g&eacute;n&egrave;rera une erreur si le nombre de capture n'est pas suffisant. En d'autres termes, il faut qu'il existe suffisamment de parenth&egrave;ses ouvrantes &agrave; gauche de la r&eacute;f&eacute;rence, surtout si la r&eacute;f&eacute;rence est inf&eacute;rieure &agrave; 10. </para> <para> - Reportez vous &agrave; la section "antislash" pour avoir de + Reportez-vous &agrave; la section "antislash" pour avoir de plus amples d&eacute;tails &agrave; propos du nombre de chiffres qui suivent l'antislash. </para> @@ -2208,12 +2230,12 @@ &eacute;t&eacute; captur&eacute; par un sous-masque dans le masque courant, plut&ocirc;t que remplace le sous-masque lui-m&ecirc;me. Ainsi <literal>(calme|rapide)</literal> et - <literal>\1ment</literal> trouvera "<literal>calme et calmement</literal>" + <literal>&#92;1ment</literal> trouvera "<literal>calme et calmement</literal>" et "<literal>rapide et rapidement</literal>", mais pas "<literal>calme et rapidement</literal>". Si la recherche tient compte de la casse, alors la casse de la cha&icirc;ne captur&eacute;e sera importante. Par exemple, - <literal>((?i)rah)\s+\1</literal> trouve "<literal>rah rah</literal>" + <literal>((?i)rah)&#92;s+&#92;1</literal> trouve "<literal>rah rah</literal>" et "<literal>RAH RAH</literal>", mais pas "<literal>RAH rah</literal>", m&ecirc;me si le sous-masque capturant initial ne tenait pas compte de la casse. @@ -2222,7 +2244,7 @@ Il peut y avoir plusieurs r&eacute;f&eacute;rences arri&egrave;res dans le m&ecirc;me sous-masque. Si un sous-masque n'a pas &eacute;t&eacute; utilis&eacute; dans une recherche, alors les r&eacute;f&eacute;rences - arri&egrave;res &eacute;choueront. Par exemple "<literal>(a|(bc))\2</literal>" + arri&egrave;res &eacute;choueront. Par exemple "<literal>(a|(bc))&#92;2</literal>" ne r&eacute;ussira jamais si la cha&icirc;ne sujet commence par "<literal>a</literal>" plut&ocirc;t que par "<literal>bc</literal>". </para> @@ -2242,10 +2264,10 @@ arri&egrave;re qui intervient &agrave; l'int&eacute;rieur de parenth&egrave;ses auquel elle fait r&eacute;f&eacute;rence &eacute;chouera d&egrave;s que le sous-masque sera utilis&eacute;. Par exemple, - <literal>(a\1)</literal> &eacute;chouera toujours. Cependant, ces + <literal>(a&#92;1)</literal> &eacute;chouera toujours. Cependant, ces r&eacute;f&eacute;rences peuvent &ecirc;tre utiles dans les sous-masques r&eacute;p&eacute;titifs. Par exemple, le masque - "<literal>(a|b\1)+</literal>" pourra convenir pour "<literal>a</literal>", + "<literal>(a|b&#92;1)+</literal>" pourra convenir pour "<literal>a</literal>", "<literal>aba</literal>", "<literal>ababaa</literal>", etc.... </para> <para> @@ -2254,7 +2276,7 @@ Pour que cela fonctionne, il faut que la premi&egrave;re it&eacute;ration n'ai pas besoin d'utiliser la r&eacute;f&eacute;rence arri&egrave;re. Cela arrive avec les alternatives, comme dans - l'exemple ci dessus, ou avec un quantificateur de minimum 0. + l'exemple ci-dessus, ou avec un quantificateur de minimum 0. </para> </refsect2> <refsect2 id="regexp.reference.assertions"> @@ -2264,23 +2286,23 @@ pr&eacute;c&eacute;dent celui qui est en cours d'&eacute;tude. Ce test ne consomme par de caract&egrave;re (ie, on ne d&eacute;place pas le pointeur de caract&egrave;res). Les assertions simples sont - cod&eacute;es avec <literal>\b</literal>, <literal>\B</literal>, - <literal>\A</literal>, <literal>\Z</literal>, <literal>\z</literal>, + cod&eacute;es avec <literal>&#92;b</literal>, <literal>&#92;B</literal>, + <literal>&#92;A</literal>, <literal>&#92;Z</literal>, <literal>&#92;z</literal>, <literal>^</literal> et <literal>$</literal>, et sont d&eacute;crites pr&eacute;c&eacute;demment. </para> <para> Il existe cependant un type d'assertions plus complexes, cod&eacute;es sous la forme de sous-masques. Il en existe deux types : celles qui - travaillent au-dela de la position courante (<literal>\w+(?=;)</literal>), - et celles qui travaillent en de&ccedil;a (<literal>(?!)\w+</literal>). + travaillent au-del&agrave; de la position courante (<literal>&#92;w+(?=;)</literal>), + et celles qui travaillent en de&ccedil;a (<literal>(?!)&#92;w+</literal>). </para> <para> Une assertion se comporte comme un sous-masque, hormis le fait qu'elle ne d&eacute;place pas le pointeur de position. Les assertions avant commencent par <literal>(?=</literal> pour les assertions positives, et par <literal>(?!</literal>, pour les assertions n&eacute;gatives. Par exemple : - <literal>\w+(?=;)</literal> s'assure qu'un mot est suivi d'un point-virgule, + <literal>&#92;w+(?=;)</literal> s'assure qu'un mot est suivi d'un point-virgule, mais n'inclus pas le point virgule dans la capture. D'autre part, <literal>(?!foo)bar</literal> en est proche, mais ne trouve pas une occurrence de "<literal>bar</literal>" qui soit pr&eacute;c&eacute;d&eacute;e @@ -2327,7 +2349,7 @@ </para> <para> Plusieurs assertions peuvent intervenir successivement. Par exemple, - le masque <literal>(?&lt;=\d{3})(?&lt;!999)foo</literal> recherche + le masque <literal>(?&lt;=&#92;d{3})(?&lt;!999)foo</literal> recherche les cha&icirc;nes "<literal>foo</literal>" pr&eacute;c&eacute;d&eacute;es par trois chiffres qui ne sont pas "999". Notez que chaque assertion est appliqu&eacute;es ind&eacute;pendemment, au m&ecirc;me point de @@ -2340,7 +2362,7 @@ les trois suivants &eacute;tant diff&eacute;rents de "<literal>999</literal>". Par exemple, ce masque n'acceptera pas la cha&icirc;ne "<literal>123abcfoo</literal>". Pour ce faire, il faut utiliser le masque - suivant : <literal>(?&lt;=\d{3}...)(?&lt;!999)foo</literal>. Dans ce + suivant : <literal>(?&lt;=&#92;d{3}...)(?&lt;!999)foo</literal>. Dans ce masque, la premi&egrave;re assertion v&eacute;rifie les six premiers caract&egrave;res, s'assure que les trois premiers sont des entiers, et la deuxi&egrave;me assertion s'assure que les trois derniers @@ -2353,7 +2375,7 @@ pr&eacute;c&eacute;d&eacute;es par "<literal>bar</literal>", qui, &agrave; son tour, n'est pas pr&eacute;c&eacute;d&eacute; par "<literal>foo</literal>". Au contraire, - <literal>(?&lt;=\d{3}(?!999)...)foo</literal> est un autre masque, + <literal>(?&lt;=&#92;d{3}(?!999)...)foo</literal> est un autre masque, qui recherche les caract&egrave;res "<literal>foo</literal>", pr&eacute;c&eacute;d&eacute;s par trois chiffres, suivis trois autres caract&egrave;res qui ne forment pas "<literal>999</literal>". @@ -2380,7 +2402,7 @@ plus t&ocirc;t, si on pense qu'il n'est pas besoin d'aller plus loin. </para> <para> - Consid&eacute;rons par exemple, le masque <literal>\d+foo</literal> + Consid&eacute;rons par exemple, le masque <literal>&#92;d+foo</literal> appliqu&eacute; &agrave; la ligne <literal>123456bar</literal>. Apr&egrave;s avoir tent&eacute; d'utiliser les 6 chiffres suivi de "<literal>foo</literal>" qui font &eacute;chouer, l'action habituelle @@ -2393,8 +2415,8 @@ n'a pas besoin d'&ecirc;tre r&eacute;&eacute;valu&eacute;e &agrave; chaque tentative. Ceci conduirait &agrave; ce que la recherche &eacute;choue imm&eacute;diatement apr&egrave;s le premier test. - Ces assertions ont leur propre notation, commencant avec - <literal>(?&gt;</literal> comme ceci : <literal>(?&gt;\d+)bar</literal>. + Ces assertions ont leur propre notation, commen&ccedil;ant avec + <literal>(?&gt;</literal> comme ceci : <literal>(?&gt;&#92;d+)bar</literal>. </para> <para> Ce type de parenth&egrave;ses verrouille le sous-masque qu'il contient @@ -2409,10 +2431,10 @@ Les sous-masques uniques ne sont pas capturants. Des cas simples comme ceux pr&eacute;sent&eacute;s ci-dessus peuvent &ecirc;tre pris comme des situations maximisantes, qui r&eacute;servent le maximum de - caract&egrave;res. En effet, alors que <literal>\d+</literal> et - <literal>\d+?</literal> ajustent le nombre de chiffres trouv&eacute;s + caract&egrave;res. En effet, alors que <literal>&#92;d+</literal> et + <literal>&#92;d+?</literal> ajustent le nombre de chiffres trouv&eacute;s de mani&egrave;re &agrave; laisser la possibilit&eacute; au masque de - r&eacute;ussir, <literal>(?&gt;\d+)</literal> ne peut retenir que la + r&eacute;ussir, <literal>(?&gt;&#92;d+)</literal> ne peut retenir que la s&eacute;quence enti&egrave;re de chiffres. Cette construction peut contenir un nombre arbitraire de sous-masques complexes, et ils peuvent &ecirc;tre imbriqu&eacute;s. @@ -2452,7 +2474,7 @@ temps de calcul trop long. </para> <para> - Le masque <literal>(\D+|&lt;\d+&gt;)*[!?]</literal> recherche un nombre + Le masque <literal>(&#92;D+|&lt;&#92;d+&gt;)*[!?]</literal> recherche un nombre illimit&eacute; de sous-cha&icirc;nes, qui contiennent soit des non-chiffres, soit des chiffres inclus dans &lt;&gt;, suivi soit par <literal>!</literal> ou par <literal>?</literal>. Lorsqu'il trouve @@ -2470,7 +2492,7 @@ attendu, et s'aper&ccedil;oit rapidement qu'il n'y a pas ce caract&egrave;re). </para> <para> - Si le masque utilis&eacute; est <literal>((?&gt;\D+)|&;lt;\d+&gt;)*[!?]</literal> + Si le masque utilis&eacute; est <literal>((?&gt;&#92;D+)|&;lt;&#92;d+&gt;)*[!?]</literal> les s&eacute;quences de chiffres ne peuvent pas &ecirc;tre trouv&eacute;es, et l'&eacute;chec intervient rapidement. </para> @@ -2502,14 +2524,14 @@ significatifs pour le rendre plus compr&eacute;hensible (on supposera l'option <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link> activ&eacute;e) et qui est divis&eacute; en trois parties - pour simplifier les explications : <literal>( \( )? [^()]+ (?(1) \) )</literal>. + pour simplifier les explications : <literal>( &#92;( )? [^()]+ (?(1) &#92;) )</literal>. </para> <para> La premi&egrave;re partie recherche une parenth&egrave;se ouvrante optionnelle, et si elle existe, elle est captur&eacute;e. La deuxi&egrave;me partie recherche un s&eacute;quence de caract&egrave;res qui ne contiennent pas de parenth&egrave;ses. La troisi&egrave;me partie est - conditionn&eacute;e &agrave; la premi&egrave;re, et s'assure que si il + conditionn&eacute;e &agrave; la premi&egrave;re, et s'assure que s'il y avait une parenth&egrave;se ouvrante, il en existe une fermante. Si une parenth&egrave;se ouvrante a &eacute;t&eacute; trouv&eacute;e, elle a &eacute;t&eacute; captur&eacute;e, et donc la premi&egrave;re capture @@ -2524,7 +2546,7 @@ arri&egrave;re ou avant. Consid&eacute;rons le masque suivant (m&ecirc;me conditions que le pr&eacute;c&eacute;dent) et avec deux alternatives en seconde ligne : - <literal>(?(?=[^a-z]*[a-z])\d{2}[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} )</literal>. + <literal>(?(?=[^a-z]*[a-z])&#92;d{2}[a-z]{3}-&#92;d{2} | &#92;d{2}-&#92;d{2}-&#92;d{2} )</literal>. La condition est une assertion avant positive, qui recherche une s&eacute;quence optionnelle de caract&egrave;res non-lettre. En d'autres termes, elle teste la presence d'au moins une lettre dans la cha&icirc;ne @@ -2539,7 +2561,7 @@ <title>Commentaires</title> <simpara> La s&eacute;quence <literal>(?#</literal> marque le d&eacute;but d'un commentaire, - qui se termine &agrave; la procha&icirc;ne parenth&egrave;se fermante. Les + qui se termine &agrave; la prochaine parenth&egrave;se fermante. Les parenth&egrave;ses imbriqu&eacute;es ne sont pas autoris&eacute;es. Les caract&egrave;res entre ces d&eacute;limiteurs ne jouent alors aucun r&ocirc;le dans le masque. @@ -2549,7 +2571,7 @@ est activ&eacute;e, les caract&egrave;res di&egrave;ses <literal>#</literal> non &eacute;chapp&eacute;s en dehors d'une classe de caract&egrave;res introduisent un commentaire qui continuera jusqu'&agrave; - la procha&icirc;ne ligne dans le masque. + la prochaine ligne dans le masque. </simpara> </refsect2> <refsect2 id="regexp.reference.recursive"> @@ -2568,7 +2590,7 @@ probl&egrave;me des parenth&egrave;ses (l'option <link linkend="pcre.pattern.modifiers">PCRE_EXTENDED</link> est utilis&eacute;e pour ignorer les espaces) : - <literal>\( ( (?&gt;[^()]+) | (?R) )* \)</literal> + <literal>&#92;( ( (?&gt;[^()]+) | (?R) )* &#92;)</literal> </para> <para> Tout d'abord, le masque recherche une parenth&egrave;se ouvrante. Puis, @@ -2602,9 +2624,9 @@ capturante est "<literal>ef</literal>", qui est la derni&egrave;re valeur lue au niveau sup&eacute;rieur. Si de nouvelles parenth&egrave;ses sont ajout&eacute;es, par exemple : - <literal>\( ( ( (?&gt;[^()]+) | (?R) )* ) \)</literal> + <literal>&#92;( ( ( (?&gt;[^()]+) | (?R) )* ) &#92;)</literal> alors la cha&icirc;ne captur&eacute;e est "<literal>ab(cd)ef</literal>", - c'est &agrave; dire le contenu de la parenth&egrave;ses capturant + c'est-&agrave;-dire le contenu de la parenth&egrave;ses capturant de plus haut niveau. S'il y a plus de 15 parenth&egrave;ses capturantes dans une cha&icirc;ne, PCRE doit utiliser plus de m&eacute;moire pour stocker ces donn&eacute;es. S'il ne @@ -2643,7 +2665,7 @@ de ces nouvelles lignes, et non pas seulement au d&eacute;but de la cha&icirc;ne sujet. Par exemple, le masque, <literal>(.*)second</literal> acceptera la cha&icirc;ne - "<literal>premier \net second</literal>" (avec "<literal>\n</literal>" + "<literal>premier &#92;net second</literal>" (avec "<literal>&#92;n</literal>" qui remplace la nouvelle ligne), et la premi&egrave;re cha&icirc;ne captur&eacute;e sera "<literal>et</literal>". </para> @@ -2683,7 +2705,7 @@ annonc&eacute; imm&eacute;diatement. Sinon, il n'y a pas d'optimisation dans la recherche. Vous pouvez voir la diff&eacute;rence de comportement avec le masque suivant : - <literal>(a+)*\d</literal>. Le premier retourne un &eacute;chec + <literal>(a+)*&#92;d</literal>. Le premier retourne un &eacute;chec quasi-imm&eacute;diatement, s'il est appliqu&eacute; &agrave; une ligne de "<literal>a</literal>", alors que le second masque prend un temps significatif pour une cha&icirc;ne de plus de
« previous php.doc (#969336443) next »