Difference between revisions of "FR/Documentation/AOO4 User Guides/Advanced/FR RegExp1"

From Apache OpenOffice Wiki
Jump to: navigation, search
m
(Introduction aux expressions régulières)
Line 1: Line 1:
 
= Introduction aux expressions régulières =
 
= Introduction aux expressions régulières =
  
[[Image:Editing.png]] Cette page est à un stade de PROJET.
+
[[Image:Editing.png|50px]] Cette page est à un stade de PROJET.
  
 
= Présentation =
 
= Présentation =

Revision as of 10:21, 18 November 2013

Introduction aux expressions régulières

Editing.png Cette page est à un stade de PROJET.

Présentation

Nous avons déjà indiqué ce qu'étaient les expressions régulières. Avec des expressions régulières (à partir de maintenant, RegExp), vous pouvez faire se correspondre des chaînes de catactères non fixes. Par exemple, l'expression

  [:number:]

correspond à n'importe quel chiffre,

  [:number:] +

correspond à un nombre entier arbitraire et

  [:number:] + \.? [:number:] *

correspond à un nombre arbitraire qui peuvent ou non avoir une partie décimale séparés par un point.

Comme il est possible de voir à partir de ces exemples, avec RegExp plusieurs caractères ont une signification particulière. Sur ce document, les principales caractéristiques du moteur RegExp basé sur le projet International Components for Unicode (ICU) et utilisé par Apache OpenOffice seront commentés.

Caractères spéciaux

Comme mentionné précédemment, plusieurs caractères ont une signification particulière dans les expressions régulières. Ces caractères sont tous les types de crochets, la barre oblique inverse, le point, le symbole du dollar, etc. Afin de rechercher les caractères spéciaux nous devons les précéder d'une barre oblique inverse: par exemple, pour rechercher [ il est nécessaire d'écrire

  \[

et bien sûr, afin de rechercher la barre oblique inverse, deux barres obliques inversées doivent être écrites

  \\

Le point

Le point peut être utilisé pour faire correspondre un caractère générique.

  d.t

correspond à dat, dot, DUT ... même DXT.

L'expression

  [:any:]

est équivalent au point.

Le point d'interrogation

Utilisé pour la correspondance de zéro ou une instances du caractère précédent. Par exemple

  mat?

correspond à mat comme à math.

Le plus

Utilisé pour faire correspondre une ou plusieurs instances.

L'astérisque

Correspond à un nombre arbitraire d'instances, voire zéro :

  mat*

correspond à mat, math, mathhhhhh ...

Les accolades

Elles peuvent être utilisées pour définir le nombre de fois que le caractère précédent doit être répété. Par exemple

  ou{2,5}ch!

correspond à ouuch!, ouuuch!, ouuuuch!, ouuuuuch!, mais pas à ouch!

Utilisez un seul nombre correspond au nombre exact

  ou{3}ch!

Vous ne trouverez que ouuuch!, tandis que

  ou{3,}ch!

Trouvera le mot avec au moins trois u.

L'accent circonflexe

Le signe ^ avoir plusieurs significations selon le contexte. D'une part, il peut être utilisé pour correspondre au début d'un paragraphe. Par exemple, dans un paragraphe comme

  le texte sur le livre

l'expression

  ^le

correspondra à la première le, mais pas le second.

Entre crochets, le ^ est utilisé pour annuler un caractère. Par exemple,

  [^a]

correspondra à n'importe quel caractère qui n'est pas un un, tandis que

  [^ar]

correspondra à un caractère qui n'est ni un a ni un r.

Le signe dollar $

Ce symbole a des significations différentes sur différents contextes.

Utilisé seul, il trouve des sauts de paragraphe, mais utilisé avec d'autres caractères, il va trouver ces caractères à la fin du paragraphe. Par exemple, le paragraphe

  Votre livre est sous ce livre

l'expression

  livre$

trouvera la seconde instance de livre, mais pas la première. Sur le champ Remplacer de la boîte de dialogue de recherche/remplacement, le signe $ a une signification différente que nous verrons ci-dessous.

La barre oblique inverse \

Comme mentionné précédemment, la barre oblique inverse peut être utilisée comme caractère d'échappement des symboles spéciaux afin qu'il puissent être recherchés pour eux-mêmes, mais elle peut aussi donner un sens différent à des caractères normaux. Par exemple,

  \b

recherchera une limite de mot:

  \bjus

correspondra aux trois premiers caractères de juste, justice, justement ... mais pas ajuster, tandis que

  rum\b

se trouvent les trois derniers caractères dans decorum, ... mais pas ruminer.

L'expression

  \w

trouvera n'importe quel caractère à l'intérieur d'un mot.

  \W

(W majuscule) trouve un caractère qui n'est pas un élément de mot (un espace, un point d'interrogation ... etc)

  \t

trouvera un taquet de tabulation.

  \n

trouvera un saut de ligne, mais dans la boîte de dialogue de remplacement insérera un saut de paragraphe (celui que vous trouvez avec $).

La combinaison \u suivie par un nombre hexadecimal peut être utilisé pour rechercher des caractères spécifiques avec leur code Unicode. Par exemple

  \ U03b4

trouvera le caractère grec delta δ

La barre verticale |

Cela peut être utilisé pour définir des alternatives. Par exemple

  mo[t|r]e

vous trouverez soit mote ou more. Elle peut être utilisée sur les expressions avec plus d'options, comme [a | b | c].

Groupes et références

Le regroupement des expressions avec parenthèses, comme dans

  (Expression1)(expression2)

donne la possibilité d'appeler chaque expression plus tard sur la formule RegExp avec une barre oblique inverse suivie d'un numéro: \1 pour appeler la première expression, \2, la deuxième, etc.

Par exemple, l'expression régulière

  \b(\w+) *\1\b

(Notez l'espace entre (w+) et l'*) peut être utilisée pour trouver des mots répétés: deux expressions \b trouveront une limite de mot, \w+ trouvera un ou plusieurs éléments de texte tandis que le \1 fait appel aux éléments mêmes qui se trouvent sur ​​le groupe (\w+).


Documentation note.png Une alternative qui recherche également un mot dupliqué avec un signe de ponctuation intermédiaire pourrait être

(\B\w+\b)\w+\1\b

ou

\B(\w+)[^[:alpha:]]*\1\b

Notez que la première expression échouera sur AOO 3.4.1 à cause d'un bug a été résolu sur la 4.0.

Dans le champ Remplacer d'une boîte de dialogue de remplacement, vous devez utiliser le signe dollar suivi par le nombre d'expression, au lieu de la barre oblique inverse.

Par exemple,chercher par

  \B(\w+) *\1\b

et remplacer par

  $1

permettra d'éliminer tout mot dupliqué sur ​​le texte.

Autres expressions

  [:alpha:]

trouve n'importe quel caractère ASCII, mais pas les caractères accentués, ni le nombre, pour lesquels vous devez utiliser

  [:any:]

ou le point, comme vu précédemment.

  [:number:]

ou

  [:digit:]

trouve un seul chiffre.

  [:space:]

trouve tout type d'espace, même ceux "non-breaking".

Il est possible d'utiliser le signe - avec les crochets pour définir des plages. Par exemple,

  [0-8]

se trouver n'importe quel chiffre, sauf 9.

Dans la boîte de remplacement,

  &

permet d'insérer la chaîne trouvée dans la recherche RegExp.

Limites à l'utilisation des expressions régulières

RegExp ne peut chercher qu'à l'intérieur d'un paragraphe: vous ne pouvez pas les utiliser par exemple pour trouver deux paragraphes à la recherche d'une fin particulière sur le premier et d'un début particulièrement sur ​​le second.

Les marques de paragraphe ne peuvent être trouvées en combinaison avec tout autre texte. Par exemple, sur un paragraphe comme

Un petit exemple. C'est la fin du texte.

l'expression

\.$

ne trouvera que le point final, pas le saut de paragraphe.

Outre les expressions déjà indiquées (&, \n, l'appel de groupes avec le signe du dollar suivi d'un nombre), la boîte de dialogue "Remplacer par" n'accepte pas d'expression régulière.

Les expressions régulières avec Writer

Sur Writer, allant dans Edition   → Rechercher & remplacer ouvrira le menu Rechercher&Remplacer. Là, avec un clic sur Plus d'options vous trouverez une case à cocher pour activer l'outil RegExp:


File:RegExp-on-Writer.pngComme vous pouvez le voir sur la capture d'écran, il est possible de combiner RegExp avec d'autres options comme   Format   .

Les expressions régulières avec Calc

TODO

Rechercher et remplacer avec la boîte de Dialogue de Recherche

TODO

Les expressions régulières sur les formules de Calc

TODO

Les expressions régulières avec Impress

TODO

Plus d'informations

http://userguide.icu-project.org/strings/regexp

Personal tools