1
0
Fork 0

avancement du fichier : 80 %

This commit is contained in:
Christophe Nanteuil 2018-07-26 23:53:29 +02:00
parent 520ac8092d
commit ef4e8e64e8
1 changed files with 297 additions and 27 deletions

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: Python 3.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-06-28 15:29+0200\n"
"PO-Revision-Date: 2018-07-24 23:31+0200\n"
"PO-Revision-Date: 2018-07-26 23:49+0200\n"
"Last-Translator: Nabil Bendafi <nabil@bendafi.fr>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
@ -662,7 +662,7 @@ msgid ""
msgstr ""
"Les expressions régulières sont compilées en objets motifs, qui possèdent "
"des méthodes pour diverses opérations telles que la recherche de "
"correspondances ou le remplacement dans les chaînes. ::"
"correspondances ou les substitutions dans les chaînes. ::"
#: ../Doc/howto/regex.rst:275
msgid ""
@ -1075,7 +1075,7 @@ msgid ""
"in a :exc:`DeprecationWarning` and will eventually become a :exc:"
"`SyntaxError`. See :ref:`the-backslash-plague`."
msgstr ""
"Le préfixe ``r`` , qui indique une chaîne brute littérale, est nécessaire "
"Le préfixe ``r``, qui indique une chaîne brute littérale, est nécessaire "
"dans cet exemple car les séquences d'échappement dans une chaîne littérale "
"qui ne sont pas reconnues par Python, alors qu'elles le sont par les "
"expressions régulières, induisent maintenant un :exc:`DeprecationWarning` et "
@ -1417,18 +1417,20 @@ msgid ""
msgstr ""
"Jusqu'à présent nous avons seulement couvert une partie des fonctionnalités "
"des expressions régulières. Dans cette section, nous couvrirons quelques "
"nouveaux métacaractères et comment utiliser les groupes pour récupérer des "
"portions de textes correspondante."
"nouveaux métacaractères et l'utilisation des groupes pour récupérer des "
"portions de textes correspondantes."
#: ../Doc/howto/regex.rst:681
msgid "More Metacharacters"
msgstr "Plus de métacaratères"
msgstr "Plus de métacaractères"
#: ../Doc/howto/regex.rst:683
msgid ""
"There are some metacharacters that we haven't covered yet. Most of them "
"will be covered in this section."
msgstr ""
"Nous n'avons pas encore couvert tous les métacaractères. Cette section "
"traite de la plupart de ceux que nous n'avons pas abordés."
#: ../Doc/howto/regex.rst:686
msgid ""
@ -1441,6 +1443,15 @@ msgid ""
"once at a given location, they can obviously be matched an infinite number "
"of times."
msgstr ""
"Certains métacaractères restants sont des :dfn:`assertions de largeur zéro` "
"(*zero-width assertions* en anglais). Ils ne font pas avancer le moteur dans "
"la chaîne de caractères ; ils ne consomment aucun caractère et ils "
"réussissent ou échouent tout simplement. Par exemple, ``\\b`` est une "
"assertion selon laquelle la position actuelle est située à la limite d'un "
"mot ; la position n'est pas modifiée par le \" \\b \". Cela signifie que les "
"assertions de largeur zéro ne doivent pas être répétées car, si elles "
"correspondent à un endroit donné, elles correspondent automatiquement un "
"nombre infini de fois."
#: ../Doc/howto/regex.rst:702
msgid "``|``"
@ -1455,12 +1466,20 @@ msgid ""
"``'Crow'`` or ``'Servo'``, not ``'Cro'``, a ``'w'`` or an ``'S'``, and "
"``'ervo'``."
msgstr ""
"Union ensembliste ou opérateur \"ou\". Si *A* et *B* sont des expressions "
"régulières, ``A|B`` correspond à toute chaine qui correspond à A ou à B. La "
"priorité de ``|`` est très faible afin de pouvoir effectuer simplement des "
"unions de chaînes de plusieurs caractères. ``Crow|Servo`` correspond avec "
"``'Crow'`` ou ``'Servo'``, mais pas avec ``'Cro'``, un ``'w'`` ou un "
"``'S'``, ou encore ``'ervo'``."
#: ../Doc/howto/regex.rst:701
msgid ""
"To match a literal ``'|'``, use ``\\|``, or enclose it inside a character "
"class, as in ``[|]``."
msgstr ""
"Pour correspondre avec un ``'|'`` littéral, utilisez ``\\|`` ou placez-le "
"dans une classe de caractères, comme ceci ``[|]``."
#: ../Doc/howto/regex.rst:717
msgid "``^``"
@ -1473,32 +1492,42 @@ msgid ""
"`MULTILINE` mode, this also matches immediately after each newline within "
"the string."
msgstr ""
"Correspond à un début de ligne. À moins que l'option :const:`MULTILINE` ne "
"soit activée, cela ne fait correspondre que le début de la chaîne. Dans le "
"mode :const:`MULTILINE`, cela fait aussi correspondre immédiatement après "
"chaque nouvelle ligne à l'intérieur de la chaîne."
#: ../Doc/howto/regex.rst:709
msgid ""
"For example, if you wish to match the word ``From`` only at the beginning of "
"a line, the RE to use is ``^From``. ::"
msgstr ""
"Par exemple, si vous voulez trouver le mot ``From`` uniquement quand il est "
"en début de ligne, la RE à utiliser est ``^From``. ::"
#: ../Doc/howto/regex.rst:717
msgid "To match a literal ``'^'``, use ``\\^``."
msgstr ""
msgstr "Pour trouver un ``'^'`` littéral, utilisez ``\\^``."
#: ../Doc/howto/regex.rst:731
msgid "``$``"
msgstr ""
msgstr "``$``"
#: ../Doc/howto/regex.rst:720
msgid ""
"Matches at the end of a line, which is defined as either the end of the "
"string, or any location followed by a newline character. ::"
msgstr ""
"Correspond à une fin de ligne, ce qui veut dire soit la fin de la chaîne, "
"soit tout emplacement qui est suivi du caractère de nouvelle ligne. ::"
#: ../Doc/howto/regex.rst:730
msgid ""
"To match a literal ``'$'``, use ``\\$`` or enclose it inside a character "
"class, as in ``[$]``."
msgstr ""
"Pour trouver un ``'$'`` littéral, utilisez ``\\$`` ou placez-le à "
"l'intérieur d'une classe de caractères, comme ceci ``[$]``."
#: ../Doc/howto/regex.rst:737
msgid "``\\A``"
@ -1512,6 +1541,12 @@ msgid ""
"string, but ``^`` may match at any location inside the string that follows a "
"newline character."
msgstr ""
"Correspond au début de la chaîne de caractère, uniquement. Si l'option :"
"const:`MULTILINE` n'est pas activée, ``\\A`` et ``^`` sont équivalents. Dans "
"le mode :const:`MULTILINE`, ils sont différents : ``\\A`` ne correspond "
"toujours qu'au début de la chaîne alors que ``^`` correspond aussi aux "
"emplacements situés immédiatement après une nouvelle ligne à l'intérieur de "
"la chaîne."
#: ../Doc/howto/regex.rst:740
msgid "``\\Z``"
@ -1532,12 +1567,19 @@ msgid ""
"characters, so the end of a word is indicated by whitespace or a non-"
"alphanumeric character."
msgstr ""
"Limite de mot. Cette une assertion de largeur zéro qui correspond uniquement "
"aux positions de début et de fin de mots. Un mot est défini comme une "
"séquence de caractères alphanumériques ; ainsi, la fin d'un mot est indiquée "
"par un \"blanc\" ou un caractère non-alphanumérique."
#: ../Doc/howto/regex.rst:748
msgid ""
"The following example matches ``class`` only when it's a complete word; it "
"won't match when it's contained inside another word. ::"
msgstr ""
"L'exemple suivant fait correspondre ``class`` seulement si c'est ce mot "
"complet ; il ne fait pas correspondre quand il est à l'intérieur d'un autre "
"mot. ::"
#: ../Doc/howto/regex.rst:759
msgid ""
@ -1549,6 +1591,15 @@ msgid ""
"won't match as you expect it to. The following example looks the same as our "
"previous RE, but omits the ``'r'`` in front of the RE string. ::"
msgstr ""
"Quand vous utilisez cette séquence spéciale, gardez deux choses à l'esprit. "
"Tout d'abord, c'est la pire collision entre les littéraux des chaînes Python "
"et les séquences d'expressions régulières. Dans les littéraux de chaîne de "
"caractères Python, ``\\b``` est le caractère de retour-arrière (*backspace* "
"en anglais), dont la valeur ASCII est 8. Si vous n'utilisez pas les chaînes "
"de caractères brutes, alors Python convertit le ``\\b`` en retour-arrière, "
"et votre RE ne correspond pas à ce que vous attendez. L'exemple suivant "
"ressemble à notre RE précédente, mais nous avons omis le ```'r'`` devant la "
"chaîne RE. ::"
#: ../Doc/howto/regex.rst:773
msgid ""
@ -1556,6 +1607,9 @@ msgid ""
"\\b`` represents the backspace character, for compatibility with Python's "
"string literals."
msgstr ""
"Ensuite, dans une classe de caractères, où cette assertion n'a pas lieu "
"d'être, ``\\b`` représente le caractère retour-arrière, afin d'être "
"compatible avec les littéraux de chaînes de caractères."
#: ../Doc/howto/regex.rst:780
msgid "``\\B``"
@ -1566,6 +1620,9 @@ msgid ""
"Another zero-width assertion, this is the opposite of ``\\b``, only matching "
"when the current position is not at a word boundary."
msgstr ""
"Encore une assertion de largeur zéro, qui est l'opposée de ``\\b``, c'est-à-"
"dire qu'elle fait correspondre uniquement les emplacements qui ne sont pas à "
"la limite d'un mot."
#: ../Doc/howto/regex.rst:783
msgid "Grouping"
@ -1579,6 +1636,13 @@ msgid ""
"of interest. For example, an RFC-822 header line is divided into a header "
"name and a value, separated by a ``':'``, like this:"
msgstr ""
"Souvent, vous avez besoin d'obtenir plus d'informations que le simple fait "
"que la RE corresponde ou non. Ainsi, les expressions régulières sont souvent "
"utilisées pour analyser des chaînes de caractères en écrivant une RE qui "
"divise une chaîne en plusieurs sous-groupes, correspondant chacun à une "
"information particulière. Par exemple, une ligne d'en-tête RFC-822 peut se "
"diviser en un nom d'en-tête et une valeur associée, séparés par un ``':'``, "
"comme ceci :"
#: ../Doc/howto/regex.rst:798
msgid ""
@ -1586,6 +1650,9 @@ msgid ""
"header line, and has one group which matches the header name, and another "
"group which matches the header's value."
msgstr ""
"Vous pouvez alors écrire une expression régulière qui fait correspondre une "
"ligne d'en-tête entière et qui comporte un groupe correspondant au nom de "
"l'en-tête, et un autre groupe correspondant à la valeur de l'en-tête."
#: ../Doc/howto/regex.rst:802
msgid ""
@ -1596,6 +1663,12 @@ msgid ""
"+``, ``?``, or ``{m,n}``. For example, ``(ab)*`` will match zero or more "
"repetitions of ``ab``. ::"
msgstr ""
"Les groupes sont délimités par les métacaractères marqueurs ``'('``et "
"``')'``. ``'('`` et ``')'`` ont à peu près le même sens que dans les "
"expressions mathématiques ; ils forment un groupe à partir des expressions "
"qu'ils encadrent ; vous pouvez le contenu d'un groupe à l'aide d'un "
"quantificateur, comme ``*``, ``+``, ``?`` ou ``{m,n}``. Par exemple, "
"``(ab)*`` correspond à zéro, une ou plusieurs fois ``ab``. ::"
#: ../Doc/howto/regex.rst:813
msgid ""
@ -1608,6 +1681,15 @@ msgid ""
"we'll see how to express groups that don't capture the span of text that "
"they match. ::"
msgstr ""
"Les groupes délimités par ``'('``et ``')'`` capturent également les indices "
"de début et de fin du texte avec lequel ils correspondent ; ces indices "
"peuvent être récupérés en passant un argument à :meth:`~re.Match.group`, :"
"meth:`~re.Match.start`, :meth:`~re.Match.end` ou :meth:`~re.Match.span`. Les "
"groupes sont numérotés à partir de 0, le groupe 0 est toujours présent ; "
"c'est l'ensemble de la RE, donc les méthodes de :ref:`l'objet correspondance "
"<match-objects>` ont le groupe 0 comme argument par défaut. Plus loin, nous "
"voyons comment exprimer les groupes qui ne capturent pas l'étendue du texte "
"avec lequel ils correspondent. ::"
#: ../Doc/howto/regex.rst:829
msgid ""
@ -1615,6 +1697,10 @@ msgid ""
"nested; to determine the number, just count the opening parenthesis "
"characters, going from left to right. ::"
msgstr ""
"Les sous-groupes sont numérotés de la gauche vers la droite, à partir de un. "
"Les groupes peuvent être imbriqués ; pour déterminer le numéro, il vous "
"suffit de compter le nombre de parenthèses ouvrantes de la gauche vers la "
"droite. ::"
#: ../Doc/howto/regex.rst:842
msgid ""
@ -1622,12 +1708,18 @@ msgid ""
"which case it will return a tuple containing the corresponding values for "
"those groups. ::"
msgstr ""
"Vous pouvez passer plusieurs numéros de groupes à :meth:`~re.Match.group` en "
"même temps, elle vous renvoie alors un *tuple* contenant les valeurs "
"correspondantes pour ces groupes. ::"
#: ../Doc/howto/regex.rst:848
msgid ""
"The :meth:`~re.Match.groups` method returns a tuple containing the strings "
"for all the subgroups, from 1 up to however many there are. ::"
msgstr ""
"La méthode :meth:`~re.Match.groups` renvoie un *tuple* contenant les "
"chaînes pour tous les sous-groupes, en commençant par le numéro 1 jusqu'au "
"dernier. ::"
#: ../Doc/howto/regex.rst:854
msgid ""
@ -1639,10 +1731,18 @@ msgid ""
"including arbitrary characters in a string, so be sure to use a raw string "
"when incorporating backreferences in a RE."
msgstr ""
"Les renvois dans un motif vous permettent de spécifier que le contenu d'un "
"groupe précédent doit aussi être trouvé à l'emplacement actuel dans la "
"chaîne. Par exemple, ``\\1`` réussit si le contenu du premier groupe se "
"trouve aussi à la position courante, sinon il échoue. Rappelez-vous que les "
"littéraux de chaînes Python utilisent aussi la barre oblique inverse suivie "
"d'un nombre pour insérer des caractères arbitraires dans une chaîne ; soyez "
"sûr d'utiliser une chaîne brute quand vous faites des renvois dans une RE."
#: ../Doc/howto/regex.rst:862
msgid "For example, the following RE detects doubled words in a string. ::"
msgstr ""
"Par exemple, la RE suivante détecte les mots doublés dans une chaîne. ::"
#: ../Doc/howto/regex.rst:868
msgid ""
@ -1651,10 +1751,14 @@ msgid ""
"you'll soon find out that they're *very* useful when performing string "
"substitutions."
msgstr ""
"Les renvois tels que celui-ci ne sont pas très utiles juste pour effectuer "
"une recherche dans une chaîne --- il n'y a que peu de formats de textes qui "
"répètent des données ainsi --- mais nous allons bientôt vous montrer qu'ils "
"sont *très* utiles pour effectuer des substitutions dans les chaînes."
#: ../Doc/howto/regex.rst:874
msgid "Non-capturing and Named Groups"
msgstr ""
msgstr "Groupes non capturant et groupes nommés"
#: ../Doc/howto/regex.rst:876
msgid ""
@ -1664,6 +1768,13 @@ msgid ""
"help with this problem. Both of them use a common syntax for regular "
"expression extensions, so we'll look at that first."
msgstr ""
"Les RE élaborées peuvent utiliser de nombreux groupes, à la fois pour "
"capturer des sous-chaînes intéressantes ainsi que pour regrouper et "
"structurer la RE elle-même. Dans les RE complexes, il devient difficile de "
"garder la trace des numéros de groupe. Deux caractéristiques aident à "
"résoudre ce problème, toutes deux utilisant la même syntaxe d'extension des "
"expressions régulières. Nous allons donc commencer en examinant cette "
"syntaxe."
#: ../Doc/howto/regex.rst:882
msgid ""
@ -1675,6 +1786,13 @@ msgid ""
"expressions would be assuming that ``&`` was a regular character and "
"wouldn't have escaped it by writing ``\\&`` or ``[&]``."
msgstr ""
"Perl 5 est bien connu pour ses puissantes extensions des expressions "
"régulières. Pour y arriver, les développeurs Perl ne pouvaient pas utiliser "
"de nouveaux métacaractères simples ou de nouvelles séquences commençant par "
"``\\`` sans que les RE Perl ne deviennent XXX différentes des RE standards. "
"S'ils avaient choisi ``&`` comme nouveau métacaractère, par exemple, les "
"anciennes expressions auraient considéré que ``&`` était un caractère "
"standard et ne l'aurait pas échappé en écrivant ``\\&`` ou ``[&]``."
#: ../Doc/howto/regex.rst:889
msgid ""
@ -1686,6 +1804,14 @@ msgid ""
"positive lookahead assertion) and ``(?:foo)`` is something else (a non-"
"capturing group containing the subexpression ``foo``)."
msgstr ""
"La solution adoptée par les développeurs Perl a été d'utiliser ``( ?...)`` "
"comme syntaxe d'extension. Placer ``?`` immédiatement après une parenthèse "
"était une erreur de syntaxe, parce que le ``?`` n'a alors rien à répéter. "
"Ainsi, cela n'a pas introduit de problème de compatibilité. Les caractères "
"qui suivent immédiatement le ``?`` indiquent quelle extension est utilisée, "
"donc ``(?=truc)`` est une chose (une assertion positive anticipée) et ``(?:"
"truc)`` est une autre chose (un groupe non capturant contenant la sous-"
"expression ``truc``)."
#: ../Doc/howto/regex.rst:897
msgid ""
@ -1693,12 +1819,19 @@ msgid ""
"Perl's extension syntax. If the first character after the question mark is "
"a ``P``, you know that it's an extension that's specific to Python."
msgstr ""
"Python gère plusieurs des extensions Perl et rajoute une extension à la "
"syntaxe des extensions Perl. Si le premier caractère après le point "
"d'interrogation est ``P``, cela signifie que c'est une extension spécifique "
"à Python."
#: ../Doc/howto/regex.rst:902
msgid ""
"Now that we've looked at the general extension syntax, we can return to the "
"features that simplify working with groups in complex REs."
msgstr ""
"Après avoir vu la syntaxe générale d'extension des RE, nous pouvons revenir "
"aux fonctionnalités qui simplifient le travail avec les groupes dans des RE "
"complexes."
#: ../Doc/howto/regex.rst:905
msgid ""
@ -1707,6 +1840,11 @@ msgid ""
"can make this fact explicit by using a non-capturing group: ``(?:...)``, "
"where you can replace the ``...`` with any other regular expression. ::"
msgstr ""
"Parfois, vous souhaitez utiliser un groupe pour marquer une partie de "
"l'expression régulière mais le contenu de ce groupe ne vous intéresse pas "
"vraiment. Vous pouvez l'indiquer explicitement en utilisant un groupe non "
"capturant : ``(?:...)``, où vous remplacez les ``...`` par n'importe quelle "
"expression régulière. ::"
#: ../Doc/howto/regex.rst:917
msgid ""
@ -1720,12 +1858,25 @@ msgid ""
"performance difference in searching between capturing and non-capturing "
"groups; neither form is any faster than the other."
msgstr ""
"À part le fait que vous n'avez pas accès au contenu du groupe, un groupe non "
"capturant se comporte exactement de la même manière qu'un groupe capturant ; "
"vous pouvez placer n'importe quoi dedans, spécifier une répétition avec un "
"métacaractère tel que ``*`` et l'imbriquer dans un autre groupe (capturant "
"ou pas). ``(?:...)`` est particulièrement utile quand vous modifiez des "
"motifs existants, puisque vous pouvez ajouter de nouveaux groupes sans "
"changer la façon dont les autres groupes sont numérotés. Nous devons "
"mentionner ici qu'il n'y a aucune différence de performance dans la "
"recherche de groupes capturant ou pas ; les deux formes travaillent à la "
"même vitesse."
#: ../Doc/howto/regex.rst:926
msgid ""
"A more significant feature is named groups: instead of referring to them by "
"numbers, groups can be referenced by a name."
msgstr ""
"Une fonctionnalité plus importante est le nommage des groupes : au lieu d'y "
"faire référence par des nombres, vous pouvez référencer des groupes par leur "
"nom."
#: ../Doc/howto/regex.rst:929
msgid ""
@ -1738,6 +1889,15 @@ msgid ""
"still given numbers, so you can retrieve information about a group in two "
"ways::"
msgstr ""
"La syntaxe pour nommer les groupes est l'une des extensions spécifiques à "
"Python : ``(?P<nom>....)```. *nom* est, vous vous en doutez, le nom du "
"groupe. Les groupes nommés se comportent exactement comme des groupes "
"capturant, sauf qu'ils associent en plus un nom à un groupe. Les méthodes "
"des :ref:`objets correspondance <match-objects>` qui gèrent les groupes "
"capturant acceptent toutes soit des entiers qui font référence aux numéros "
"des groupes, soit des chaînes de caractères qui désignent les noms des "
"groupes désirés. Les groupes nommés se voient toujours attribuer un numéro, "
"vous pouvez ainsi récupérer les informations d'un groupe de deux façons ::"
#: ../Doc/howto/regex.rst:944
msgid ""
@ -1745,12 +1905,16 @@ msgid ""
"instead of having to remember numbers. Here's an example RE from the :mod:"
"`imaplib` module::"
msgstr ""
"Les groupes nommés sont pratiques car il est plus facile de se rappeler un "
"nom qu'un numéro. Voici un exemple de RE tirée du module :mod:`imaplib` ::"
#: ../Doc/howto/regex.rst:955
msgid ""
"It's obviously much easier to retrieve ``m.group('zonem')``, instead of "
"having to remember to retrieve group 9."
msgstr ""
"Il est évidemment plus facile de récupérer ``m.group('zonem')`` que de se "
"rappeler de récupérer le groupe 9."
#: ../Doc/howto/regex.rst:958
msgid ""
@ -1762,10 +1926,17 @@ msgid ""
"words, ``\\b(\\w+)\\s+\\1\\b`` can also be written as ``\\b(?P<word>\\w+)\\s"
"+(?P=word)\\b``::"
msgstr ""
"La syntaxe des renvois dans une expression telle que ``(....)\\1`` fait "
"référence au numéro du groupe. Il y a naturellement une variante qui utilise "
"le nom du groupe au lieu du numéro. C'est une autre extension Python : ``(?"
"P=nom)`` indique que le contenu du groupe appelé *nom* doit correspondre à "
"nouveau avec l'emplacement courant. L'expression régulière pour trouver des "
"mots doublés, ``\\b(\\w+)\\s+\\1\\b`` peut ainsi être ré-écrite en ``\\b(?"
"P<mot>\\w+)\\s+(?P=mot)\\b`` ::"
#: ../Doc/howto/regex.rst:971
msgid "Lookahead Assertions"
msgstr ""
msgstr "Assertions prédictives"
#: ../Doc/howto/regex.rst:973
msgid ""
@ -1773,6 +1944,9 @@ msgid ""
"assertions are available in both positive and negative form, and look like "
"this:"
msgstr ""
"Une autre assertion de largeur zéro est l'assertion prédictive. Une "
"assertion prédictive peut s'exprimer sous deux formes, la positive et la "
"négative, comme ceci :"
#: ../Doc/howto/regex.rst:981
msgid "``(?=...)``"
@ -1786,6 +1960,12 @@ msgid ""
"tried, the matching engine doesn't advance at all; the rest of the pattern "
"is tried right where the assertion started."
msgstr ""
"Assertion prédictive positive. Elle réussit si l'expression régulière "
"contenue, représentée ici par ``...``, correspond effectivement à "
"l'emplacement courant ; dans le cas contraire, elle échoue. Mais, une fois "
"que l'expression contenue a été essayée, le moteur de correspondance "
"n'avance pas ; le reste du motif est testé à l'endroit même où l'assertion a "
"commencé."
#: ../Doc/howto/regex.rst:986
msgid "``(?!...)``"
@ -1797,6 +1977,9 @@ msgid ""
"assertion; it succeeds if the contained expression *doesn't* match at the "
"current position in the string."
msgstr ""
"Assertion prédictive négative. C'est l'opposée de l'assertion positive ; "
"elle réussit si l'expression régulière contenue *ne* correspond *pas* à "
"l'emplacement courant dans la chaine."
#: ../Doc/howto/regex.rst:988
msgid ""
@ -1805,14 +1988,19 @@ msgid ""
"name and an extension, separated by a ``.``. For example, in ``news.rc``, "
"``news`` is the base name, and ``rc`` is the filename's extension."
msgstr ""
"Pour rendre ceci plus concret, regardons le cas où une prédiction est utile. "
"Considérons un motif simple qui doit faire correspondre un nom de fichier et "
"le diviser en un nom de base et une extension, séparés par un ``.``. Par "
"exemple, dans ``news.rc``, ``news`` est le nom de base et ``rc`` est "
"l'extension du nom de fichier."
#: ../Doc/howto/regex.rst:993
msgid "The pattern to match this is quite simple:"
msgstr "Le motif de correspondance est plutôt simple: "
msgstr "Le motif de correspondance est plutôt simple :"
#: ../Doc/howto/regex.rst:995
msgid "``.*[.].*$``"
msgstr ""
msgstr "``.*[.].*$``"
#: ../Doc/howto/regex.rst:997
msgid ""
@ -1823,12 +2011,21 @@ msgid ""
"expression matches ``foo.bar`` and ``autoexec.bat`` and ``sendmail.cf`` and "
"``printers.conf``."
msgstr ""
"Notez que le ``.`` doit être traité spécialement car c'est un métacaractère, "
"nous le plaçons donc à l'intérieur d'une classe de caractères pour ne faire "
"correspondre que ce caractère spécifique. Notez également le ``$`` en fin ; "
"nous l'avons ajouté pour nous assurer que tout le reste de la chaîne est "
"bien inclus dans l'extension. Cette expression régulière fait correspondre "
"``truc.bar``, ``autoexec.bat``, ``sendmail.cf`` et ``printers.conf``."
#: ../Doc/howto/regex.rst:1004
msgid ""
"Now, consider complicating the problem a bit; what if you want to match "
"filenames where the extension is not ``bat``? Some incorrect attempts:"
msgstr ""
"Maintenant, compliquons un peu le problème ; si nous voulons faire "
"correspondre les noms de fichiers dont l'extension n'est pas ``bat`` ? voici "
"quelques tentatives incorrectes :"
#: ../Doc/howto/regex.rst:1007
msgid ""
@ -1836,10 +2033,13 @@ msgid ""
"requiring that the first character of the extension is not a ``b``. This is "
"wrong, because the pattern also doesn't match ``foo.bar``."
msgstr ""
"``.*[.][^b].*$`` Le premier essai ci-dessus tente d'exclure ``bat`` en "
"spécifiant que le premier caractère de l'extension ne doit pas être ``b``. "
"Cela ne fonctionne pas, car le motif n'accepte pas ``truc.bar``."
#: ../Doc/howto/regex.rst:1011
msgid "``.*[.]([^b]..|.[^a].|..[^t])$``"
msgstr ""
msgstr "``.*[.]([^b]..|.[^a].|..[^t])$``"
#: ../Doc/howto/regex.rst:1013
msgid ""
@ -1851,10 +2051,18 @@ msgid ""
"with a two-letter extension such as ``sendmail.cf``. We'll complicate the "
"pattern again in an effort to fix it."
msgstr ""
"L'expression devient plus confuse si nous essayons de réparer la première "
"solution en spécifiant l'un des cas suivants : le premier caractère de "
"l'extension n'est pas ``b`` ; le deuxième caractère n'est pas ``a`` ; ou le "
"troisième caractère n'est pas ``t```. Ce motif accepte ``truc.bar`` et "
"rejette ``autoexec.bat``, mais elle nécessite une extension de trois lettres "
"et n'accepte pas un nom de fichier avec une extension de deux lettres comme "
"``sendmail.cf``. Compliquons encore une fois le motif pour essayer de le "
"réparer."
#: ../Doc/howto/regex.rst:1021
msgid "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``"
msgstr ""
msgstr "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``"
#: ../Doc/howto/regex.rst:1023
msgid ""
@ -1862,6 +2070,9 @@ msgid ""
"order to allow matching extensions shorter than three characters, such as "
"``sendmail.cf``."
msgstr ""
"Pour cette troisième tentative, les deuxième et troisième lettres sont "
"devenues facultatives afin de permettre la correspondance avec des "
"extensions plus courtes que trois caractères, comme ``sendmail.cf``."
#: ../Doc/howto/regex.rst:1027
msgid ""
@ -1870,10 +2081,14 @@ msgid ""
"``bat`` and ``exe`` as extensions, the pattern would get even more "
"complicated and confusing."
msgstr ""
"Le motif devient vraiment compliqué maintenant, ce qui le rend difficile à "
"lire et à comprendre. Pire, si le problème change et que vous voulez exclure "
"à la fois ``bat`` et ``exe`` en tant qu'extensions, le modèle deviendra "
"encore plus compliqué et confus."
#: ../Doc/howto/regex.rst:1032
msgid "A negative lookahead cuts through all this confusion:"
msgstr ""
msgstr "Une assertion prédictive négative supprime toute cette confusion :"
#: ../Doc/howto/regex.rst:1034
msgid ""
@ -1884,6 +2099,13 @@ msgid ""
"starts with ``bat``, will be allowed. The ``[^.]*`` makes sure that the "
"pattern works when there are multiple dots in the filename."
msgstr ""
"``.*[.](?!bat$)[^.]*$`` Cette assertion prédictive négative signifie : si "
"l'expression ``bat`` ne correspond pas à cet emplacement, essaie le reste du "
"motif ; si ``bat$`` correspond, tout le motif échoue. Le ``$`` est "
"nécessaire pour s'assurer que quelque chose comme ``sample.batch``, où c'est "
"seulement le début de l'extension qui vaut ``bat``, est autorisé. Le "
"``[^...]*`` s'assure que le motif fonctionne lorsqu'il y a plusieurs points "
"dans le nom de fichier."
#: ../Doc/howto/regex.rst:1041
msgid ""
@ -1891,14 +2113,17 @@ msgid ""
"alternative inside the assertion. The following pattern excludes filenames "
"that end in either ``bat`` or ``exe``:"
msgstr ""
"Exclure une autre extension de nom de fichier est maintenant facile ; il "
"suffit de l'ajouter comme alternative à l'intérieur de l'assertion. Le motif "
"suivant exclut les noms de fichiers qui se terminent par ``bat`` ou ``exe`` :"
#: ../Doc/howto/regex.rst:1045
msgid "``.*[.](?!bat$|exe$)[^.]*$``"
msgstr ""
msgstr "``.*[.](?!bat$|exe$)[^.]*$``"
#: ../Doc/howto/regex.rst:1049
msgid "Modifying Strings"
msgstr ""
msgstr "Modification de chaînes"
#: ../Doc/howto/regex.rst:1051
msgid ""
@ -1906,10 +2131,14 @@ msgid ""
"Regular expressions are also commonly used to modify strings in various "
"ways, using the following pattern methods:"
msgstr ""
"Jusqu'à présent, nous avons simplement effectué des recherches dans une "
"chaîne statique. Les expressions régulières sont aussi couramment utilisées "
"pour modifier les chaînes de caractères de diverses manières, en utilisant "
"les méthodes suivantes des motifs :"
#: ../Doc/howto/regex.rst:1058
msgid "``split()``"
msgstr ""
msgstr "``split()``"
#: ../Doc/howto/regex.rst:1058
msgid "Split the string into a list, splitting it wherever the RE matches"
@ -1919,29 +2148,31 @@ msgstr ""
#: ../Doc/howto/regex.rst:1061
msgid "``sub()``"
msgstr ""
msgstr "``sub()``"
#: ../Doc/howto/regex.rst:1061
msgid ""
"Find all substrings where the RE matches, and replace them with a different "
"string"
msgstr ""
"Rechercher toutes les sous-chaînes de caractères où correspond la RE et les "
"substituer par une chaîne de caractères différente "
"Recherche toutes les sous-chaînes de caractères où la RE correspond et les "
"substitue par une chaîne de caractères différente"
#: ../Doc/howto/regex.rst:1064
msgid "``subn()``"
msgstr ""
msgstr "``subn()``"
#: ../Doc/howto/regex.rst:1064
msgid ""
"Does the same thing as :meth:`!sub`, but returns the new string and the "
"number of replacements"
msgstr ""
"Fait la même chose que :meth:`!sub`, mais renvoie la nouvelle chaîne et le "
"nombre de remplacements effectués"
#: ../Doc/howto/regex.rst:1071
msgid "Splitting Strings"
msgstr ""
msgstr "Découpage de chaînes"
#: ../Doc/howto/regex.rst:1073
msgid ""
@ -1952,6 +2183,13 @@ msgid ""
"splitting by whitespace or by a fixed string. As you'd expect, there's a "
"module-level :func:`re.split` function, too."
msgstr ""
"La méthode :meth:`~re.Pattern.Pattern.split` d'un motif divise une chaîne de "
"caractères à chaque fois que la RE correspond, retournant la liste des "
"morceaux. C'est similaire à la méthode :meth:`~str.split` mais est beaucoup "
"plus générale par les délimiteurs que vous pouvez spécifier ; string :meth:`!"
"split` ne gère que les découpage en suivant les \"blancs\" ou suivant une "
"chaîne définie. Comme vous pouvez vous y attendre, il y a aussi une "
"fonction :func:`re.split` de niveau module."
#: ../Doc/howto/regex.rst:1084
msgid ""
@ -1960,6 +2198,10 @@ msgid ""
"part of the resulting list. If *maxsplit* is nonzero, at most *maxsplit* "
"splits are performed."
msgstr ""
"Découpe *string* en suivant les correspondances de l'expression régulière. "
"Si des parenthèses de capture sont utilisées dans la RE, leur contenu est "
"également renvoyé dans la liste résultante. Si *maxsplit* n'est pas nul, au "
"plus *maxsplit* découpages sont effectués."
#: ../Doc/howto/regex.rst:1089
msgid ""
@ -1969,6 +2211,11 @@ msgid ""
"the following example, the delimiter is any sequence of non-alphanumeric "
"characters. ::"
msgstr ""
"Vous pouvez limiter le nombre de découpages effectués en passant une valeur "
"pour *maxsplit*. Quand *maxsplit* n'est pas nul, au plus *maxsplit* "
"découpages sont effectués et le reste de la chaîne est renvoyé comme dernier "
"élément de la liste. Dans l'exemple suivant, le délimiteur est toute "
"séquence de caractères non alphanumériques. ::"
#: ../Doc/howto/regex.rst:1101
msgid ""
@ -1977,12 +2224,18 @@ msgid ""
"used in the RE, then their values are also returned as part of the list. "
"Compare the following calls::"
msgstr ""
"Parfois, vous voulez récupérer le texte entre les délimiteurs mais aussi "
"quel était le délimiteur. Si des parenthèses de capture sont utilisées dans "
"la RE, leurs valeurs sont également renvoyées dans la liste. Comparons les "
"appels suivants ::"
#: ../Doc/howto/regex.rst:1113
msgid ""
"The module-level function :func:`re.split` adds the RE to be used as the "
"first argument, but is otherwise the same. ::"
msgstr ""
"La fonction de niveau module :func:`re.split` ajoute la RE à utiliser comme "
"premier argument, mais est par ailleurs identique. ::"
#: ../Doc/howto/regex.rst:1125
msgid "Search and Replace"
@ -1995,6 +2248,10 @@ msgid ""
"replacement value, which can be either a string or a function, and the "
"string to be processed."
msgstr ""
"Une autre tâche classique est de trouver toutes les correspondances d'un "
"motif et de les remplacer par une autre chaîne. La méthode :meth:`~re."
"Pattern.sub` prend une valeur de substitution, qui peut être une chaîne de "
"caractères ou une fonction, et la chaîne à traiter."
#: ../Doc/howto/regex.rst:1134
msgid ""
@ -2002,6 +2259,9 @@ msgid ""
"occurrences of the RE in *string* by the replacement *replacement*. If the "
"pattern isn't found, *string* is returned unchanged."
msgstr ""
"Renvoie la chaîne obtenue en remplaçant les occurrences sans chevauchement "
"les plus à gauche de la RE dans *string* par la substitution *replacement*. "
"Si le motif n'est pas trouvé, *string* est renvoyée inchangée."
#: ../Doc/howto/regex.rst:1138
msgid ""
@ -2009,12 +2269,17 @@ msgid ""
"to be replaced; *count* must be a non-negative integer. The default value "
"of 0 means to replace all occurrences."
msgstr ""
"L'argument optionnel *count* est le nombre maximum d'occurrences du motif à "
"remplacer ; *count* doit être un entier positif ou nul. La valeur par défaut "
"de 0 signifie qu'il faut remplacer toutes les occurrences."
#: ../Doc/howto/regex.rst:1142
msgid ""
"Here's a simple example of using the :meth:`~re.Pattern.sub` method. It "
"replaces colour names with the word ``colour``::"
msgstr ""
"Voici un exemple simple utilisant la méthode :meth:`~re.Pattern.sub`. Nous "
"remplaçons les noms des couleurs par le mot ``colour`` ::"
#: ../Doc/howto/regex.rst:1151
msgid ""
@ -2022,12 +2287,17 @@ msgid ""
"tuple containing the new string value and the number of replacements that "
"were performed::"
msgstr ""
"La méthode :meth:`~re.Pattern.subn.subn` fait la même chose mais retourne un "
"couple contenant la nouvelle valeur de la chaîne de caractères et le nombre "
"de remplacements effectués ::"
#: ../Doc/howto/regex.rst:1160
msgid ""
"Empty matches are replaced only when they're not adjacent to a previous "
"empty match. ::"
msgstr ""
"Les correspondances vides ne sont remplacées que lorsqu'elles ne sont pas "
"adjacentes à une correspondance vide précédente. ::"
#: ../Doc/howto/regex.rst:1167
msgid ""
@ -2085,7 +2355,7 @@ msgstr ""
#: ../Doc/howto/regex.rst:1224
msgid "Common Problems"
msgstr "Problèmes courants"
msgstr "Problèmes classiques"
#: ../Doc/howto/regex.rst:1226
msgid ""
@ -2097,7 +2367,7 @@ msgstr ""
#: ../Doc/howto/regex.rst:1232
msgid "Use String Methods"
msgstr ""
msgstr "Utilisez les méthodes des *string*"
#: ../Doc/howto/regex.rst:1234
msgid ""
@ -2180,7 +2450,7 @@ msgstr ""
#: ../Doc/howto/regex.rst:1298
msgid "Greedy versus Non-Greedy"
msgstr ""
msgstr "Glouton contre non-glouton"
#: ../Doc/howto/regex.rst:1300
msgid ""
@ -2256,7 +2526,7 @@ msgstr "Ceci est beaucoup plus lisible que::"
#: ../Doc/howto/regex.rst:1372
msgid "Feedback"
msgstr "Retour"
msgstr "Vos commentaires"
#: ../Doc/howto/regex.rst:1374
msgid ""