mirror of
https://github.com/php/doc-fr.git
synced 2026-03-23 22:52:18 +01:00
242 lines
10 KiB
XML
242 lines
10 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- $Revision$ -->
|
||
<!-- EN-Revision: b5aa3464c8817645633dc4364e1ac2d7b92c5b3f Maintainer: yannick Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
|
||
<article xml:id="reference.pcre.pattern.modifiers" xmlns="http://docbook.org/ns/docbook">
|
||
<title>Options de recherche</title>
|
||
<titleabbrev>Options disponibles pour les expressions régulières</titleabbrev>
|
||
<para>
|
||
Les options de PCRE sont listées ci-dessous. Les noms entre
|
||
parenthèses sont les noms internes à PCRE.
|
||
Les espaces et les caractères de nouvelles lignes sont ignorés
|
||
dans les modificateurs, les autres caractères causent des erreurs.
|
||
</para>
|
||
<para>
|
||
<blockquote>
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term><emphasis>i</emphasis> (<literal>PCRE_CASELESS</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Effectue une recherche insensible à la casse.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>m</emphasis> (<literal>PCRE_MULTILINE</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Par défaut, PCRE traite la chaîne sujet comme une seule
|
||
ligne (même si cette chaîne contient des retours chariot).
|
||
Le métacaractère "début de ligne" (^) ne sera
|
||
valable qu'une seule fois, au début de la ligne, et le
|
||
métacaractère "fin de ligne " ($) ne sera valable
|
||
qu'à la fin de la chaîne, ou avant le retour chariot
|
||
final (à moins que l'option <emphasis>D</emphasis> ne soit activée).
|
||
C'est le même fonctionnement qu'en Perl.
|
||
</simpara>
|
||
<simpara>
|
||
Lorsque cette option est activée, " début de ligne " et
|
||
" fin de ligne " correspondront alors aux caractères
|
||
suivant et précédent immédiatement un
|
||
caractère de nouvelle ligne, en plus du début
|
||
et de la fin de la chaîne. C'est le même
|
||
fonctionnement que l'option Perl /m. S'il n'y a pas de
|
||
caractère de nouvelle ligne "\n" dans la chaîne sujet,
|
||
ou s'il n'y a aucune occurrence de ^ ou $ dans le masque, cette option
|
||
ne sert à rien.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>s</emphasis> (<literal>PCRE_DOTALL</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Avec cette option, le métacaractère point (.)
|
||
remplace n'importe quel caractère, y compris les nouvelles
|
||
lignes. Sans cette option, le caractère point ne remplace
|
||
pas les nouvelles lignes. Cette option est équivalente
|
||
à l'option Perl /s. Une classe de caractères
|
||
négative telle que [^a] acceptera toujours les
|
||
caractères de nouvelles lignes, indépendamment
|
||
de cette option.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>x</emphasis> (<literal>PCRE_EXTENDED</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Avec cette option, les caractères d'espacement sont
|
||
ignorés, sauf lorsqu'ils sont échappés,
|
||
ou à l'intérieur d'une classe de caractères,
|
||
et tous les caractères entre # non échappés
|
||
et en dehors d'une classe de caractères, et le prochain
|
||
caractère de nouvelle ligne sont ignorés. C'est
|
||
l'équivalent Perl de l'option /x : elle permet l'ajout
|
||
de commentaires dans les masques compliqués. Notez bien,
|
||
cependant, que cela ne s'applique qu'aux caractères de
|
||
données. Les caractères d'espacement ne doivent
|
||
jamais apparaître dans les séquences spéciales
|
||
d'un masque, par exemple dans la séquence (?( qui
|
||
introduit une parenthèse conditionnelle.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>A</emphasis> (<literal>PCRE_ANCHORED</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Avec cette option, le masque est ancré de force, c'est-à-dire
|
||
que le masque doit s'appliquer juste au début de la chaîne sujet
|
||
pour être considéré comme trouvé. Il est possible de réaliser le
|
||
même effet en ajoutant les métacaractères adéquats, ce qui est la
|
||
seule manière de le faire en Perl.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>D</emphasis> (<literal>PCRE_DOLLAR_ENDONLY</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Avec cette option, le métacaractère $ ne sera
|
||
valable qu'à la fin de la chaîne sujet. Sans
|
||
cette option, $ est aussi valable avant une nouvelle ligne,
|
||
si cette dernière est le dernier caractère de
|
||
la chaîne. Cette option est ignorée si l'option
|
||
<emphasis>m</emphasis> est activée. Il n'y a pas
|
||
d'équivalent en Perl.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>S</emphasis></term>
|
||
<listitem>
|
||
<simpara>
|
||
Lorsqu'un masque est utilisé plusieurs fois, cela vaut
|
||
la peine de passer quelques instants de plus pour l'analyser
|
||
et optimiser le code pour accélérer les
|
||
traitements ultérieurs. Cette option force cette
|
||
analyse plus poussée. Actuellement, cette analyse
|
||
n'est utile que pour les masques non ancrés, qui
|
||
ne commencent pas par un caractère fixe.
|
||
À partir de PHP 7.3.0, ce drapeau n'a plus d'effet.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>U</emphasis> (<literal>PCRE_UNGREEDY</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Cette option inverse la tendance à la gourmandise des
|
||
expressions régulières. Il est aussi possible d'inverser
|
||
cette tendance au coup par coup avec un <literal>?</literal> mais
|
||
cela rendra gourmande la séquence. Cette option n'est pas compatible
|
||
avec Perl. Elle peut aussi être mise dans le masque avec
|
||
l'option <literal>(?U)</literal> dans le
|
||
<link linkend="regexp.reference.internal-options">pattern</link> ou
|
||
par un point d'interrogation avant le quantificateur (e.g. <literal>.*?</literal>).
|
||
</simpara>
|
||
<note>
|
||
<para>
|
||
Il n'est généralement pas possible de faire correspondre
|
||
plus que la limite de <link
|
||
linkend="ini.pcre.backtrack-limit">pcre.backtrack_limit</link>
|
||
caractères en mode non gourmand.
|
||
</para>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>X</emphasis> (<literal>PCRE_EXTRA</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Cette option ajoute d'autres fonctionnalités incompatibles
|
||
avec le PCRE de Perl. Tous les antislashs suivis d'une lettre qui
|
||
n'aurait pas de signification particulière causent une erreur,
|
||
permettant la réservation de ces combinaisons pour des ajouts
|
||
fonctionnels ultérieurs. Par défaut, comme en Perl, les
|
||
antislashs suivis d'une lettre sans signification particulière
|
||
sont traités comme des valeurs littérales. Actuellement,
|
||
cette option ne déclenche pas d'autres fonctions.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>J</emphasis> (<literal>PCRE_INFO_JCHANGED</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
L'option (?J) interne de configuration modifie l'option locale <literal>PCRE_DUPNAMES</literal>.
|
||
Permet la duplication de noms pour les sous-masques.
|
||
À partir de PHP 7.2.0, <literal>J</literal> est aussi supporté en tant que modificateur.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>u</emphasis> (<literal>PCRE_UTF8</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Cette option active des fonctionnalités additionnelles de PCRE qui ne sont pas compatibles avec Perl.
|
||
La chaîne d'entrée et le masque sont traités comme des chaînes UTF-8.
|
||
Une chaîne d'entrée invalide aura pour conséquence une absence de correspondance dans les fonctions preg_*.
|
||
Un masque invalide va lever une erreur de niveau <constant>E_WARNING</constant>.
|
||
Les séquences UTF-8 de cinq et six octets sont considérées comme invalides.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>n</emphasis> (<literal>PCRE_NO_AUTO_CAPTURE</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Ce modificateur rend les groupes simples <code>(xyz)</code> non capturants.
|
||
Seuls les groupes nommés comme <code>(?<name>xyz)</code> sont capturants.
|
||
Cela affecte uniquement les groupes capturants, il est toujours possible
|
||
d'utiliser des références de sous-masque numérotées, et le tableau de
|
||
correspondances contiendra toujours des résultats numérotés.
|
||
Disponible à partir de PHP 8.2.0
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><emphasis>r</emphasis> (<literal>PCRE2_EXTRA_CASELESS_RESTRICT</literal>)</term>
|
||
<listitem>
|
||
<simpara>
|
||
Lorsque <emphasis>u</emphasis> (<literal>PCRE_UTF8</literal>) et <emphasis>i</emphasis> (<literal>PCRE_CASELESS</literal>)
|
||
sont actifs, ce modificateur empêche la correspondance entre les caractères ASCII et non-ASCII.
|
||
</simpara>
|
||
<simpara>
|
||
Par exemple, <code>preg_match('/\x{212A}/iu', "K")</code> correspond au signe Kelvin <literal>K</literal> (U+212A).
|
||
Lorsque <emphasis>r</emphasis> est utilisé (<code>preg_match('/\x{212A}/iur', "K")</code>), cela ne correspond pas.
|
||
</simpara>
|
||
<simpara>
|
||
Disponible à partir de PHP 8.4.0.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</blockquote>
|
||
</para>
|
||
</article>
|
||
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|