Chercher et remplacer

www.altova.com Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Manuel de l'utilisateur et référence > Modes d'édition > Mode Texte >

Chercher et remplacer

Vous trouverez dans cette section :

 

Chercher un texte dans un document
Trouver des options
Remplacer du texte
Utiliser des expressions régulières
Exemples d'expression régulières

 

Chercher un texte dans un document

Appuyer sur Ctrl+F (ou sélectionner la commande de menu Édition | Recherche) pour afficher le dialogue Rechercher (capture d'écran ci-dessous, coin supérieur droit). Vous pouvez ensuite rechercher dans la totalité du document ou dans une section de texte pour trouver un terme à saisir dans le dialogue.

 

Saisir une ligne de texte pour effectuer une recherche ou utiliser la liste de choix pour sélectionner une ligne de texte parmi les 10 dernières lignes de texte.
Lorsque vous saisissez ou sélectionnez une ligne de texte à chercher, toutes les correspondances sont marquées et les positions des correspondances sont indiquées par des marqueurs beige dans la barre de défilement (voir capture d'écran).
La correspondance actuellement sélectionnée a une couleur de marquage différente des autres correspondances et sa position est indiquée dans la barre de défilement par le trait de marquage bleu foncé.
Le nombre total de correspondances est recensé sous le champ de saisie des termes, avec la position d'index de la correspondance actuellement sélectionnée (voir capture d'écran ci-dessous). Par exemple, 2 de 4 indique que la deuxième d'un total de quatre correspondances est actuellement sélectionnée.
Vous pouvez passer d'une correspondance à l'autre, dans les deux sens, en appuyant sur les touches Précédent (Shift+F3) et Suivant (F3) situés en bas à droite.

TextViewFind

Pour passer entre les modes Trouver et Remplacer, cliquer sur le bouton Bas situé en haut à gauche.
Pour fermer le dialogue, cliquer sur le bouton Fermé situé en haut à droite.

 

Veuillez noter les points suivants :

 

Le dialogue Chercher n'a pas de mode. Cela signifie qu'il peut rester ouvert pendant que vous continuez à utiliser le Mode Texte.
Si le texte est sélectionné avant l'ouverture de la fenêtre de dialogue, le texte sélectionné sera automatiquement inséré dans le champ de recherche du terme (champ Chercher).
Pour effectuer une recherche au sein d'une sélection, procéder comme suit : (i) marquer la sélection; (ii) activer l'option Chercher dans la sélection pour verrouiller la sélection ; (iii) saisir le terme de recherche. Pour effectuer une recherche dans une autre sélection, déverrouiller la sélection actuelle en désactivant l'option Chercher dans la sélection, puis faire la nouvelle sélection et activer l'option Chercher dans la sélection.
Une fois le dialogue Chercher fermé, vous pouvez renouveler la recherche en appuyant sur F3 pour une recherche vers l'avant, ou Shift+F3 pour une recherche vers l'arrière. Le dialogue Chercher réapparaîtra dans ce cas.

 

Trouver des options

Les options pour déterminer les critères Chercher peuvent être spécifiées par le biais de boutons situés en-dessous du champ de saisie du terme (voir capture d'écran ci-dessous). Lorsqu'une option est activée, la couleur de sa touche change de couleur et devient bleue (voir la première option (de casse) dans la capture d'écran ci-dessous).

TextViewFindDialog

Vous pouvez sélectionner une option parmi les suivantes :

 

Respecter la casse : Respecter la casse pendant la recherche si cette option est activée (Address n'est pas identique à address).
Correspondance du mot entier : Seuls les mots exactement identiques dans le texte seront retenus. Par exemple, pour la saisie fit, si l'option Correspondance du mot entier est activée, seul le mot fit correspondra au terme recherché ; mais fit dans fitness, par exemple, ne sera pas retenu.
Expression régulière : Si cette option est activée, le terme de recherche sera lu en tant qu'expression régulière. Voir Expressions régulières ci-dessous pour une description de l'utilisation des expressions régulières.
Filtrer les résultats : Choisir un ou plusieurs composants de document à l'endroit où vous souhaitez effectuer la recherche.
Trouver ancre : Lorsque vous saisissez un terme de recherche, les correspondances dans le document sont marquées et une de ces correspondances sera marquée en tant que la sélection actuelle. La bascule Trouver ancre détermine si cette première sélection actuelle est effectuée relativement à la position du curseur ou pas. Si l'option Trouver ancre est activée, la première correspondance actuellement sélectionnée sera la correspondance suivante en partant de l'emplacement actuel du curseur. Si l'option Trouver ancre est désactivée, la première correspondance actuellement sélectionnée sera la première correspondance dans le document, en partant du haut.
Trouver dans la sélection : Si cette option est activée, elle verrouille la sélection de texte actuelle et limite la recherche à la sélection. Dans le cas contraire, le document entier sera parcouru. Avant de sélectionner une nouvelle série de texte, déverrouiller la sélection actuelle en désactivant l'option Chercher dans la sélection.

 

Remplacer du texte

Pour remplacer une ligne de texte, procéder comme suit :

 

1.Appuyer sur Ctrl+H (ou sélectionner la commande de menu Édition | Remplacer) pour ouvrir le dialogue Remplacer (capture d'écran ci-dessous). (En alternative, vous pouvez passer au mode Remplacer du dialogue Chercher/Remplacer en cliquant sur le bouton Flèche bas situé en haut et à gauche du dialogue.)

TextViewReplace

2.Saisir la ligne à remplacer dans le champ de saisie et saisir la nouvelle ligne dans le champ Remplacer. Le nombre de correspondances de texte à remplacer et l'index de la correspondance sélectionnée actuellement sont affichés sous le champ Remplacer. De même, les emplacements des correspondances sont indiqués dans la barre de défilement par des marqueurs beiges (voir Chercher du texte dans un document ci-dessus pour plus d'informations). Par exemple, la capture d'écran ci-dessus montre qu'il y a cinq correspondances pour le string type, et que la troisième de ces correspondances est sélectionnée actuellement.
3.Les boutons Remplacer suivant et Remplacer tout se trouvent à droite du champ Remplacer. Si vous cliquez sur Remplacer suivant, (i) lorsque le curseur est placé à côté d'une correspondance ou dans une correspondance, la correspondance sera remplacée ; (ii) si le curseur est placé en dehors d'une correspondance, il passera à la correspondance suivante ; cliquer sur Remplacer suivant pour remplacer cette correspondance. Cliquer sur Remplacer tout pour remplacer toutes les correspondances.

 

Veuillez noter les points suivants :

 

Pour remplacer le texte dans le cadre d'une sélection, au lieu du document entier, procéder comme suit : (i) marquer la sélection ; (ii) activer l'option Chercher dans la sélection pour verrouiller la sélection ; (iii) saisir les lignes de texte Chercher et Remplacer ; (iii) Cliquer sur Remplacer suivant ou Remplacer tout le cas échéant. Pour remplacer le texte avec une autre sélection, déverrouiller la sélection actuelle en désactivant l'option Chercher dans la sélection, puis effectuer la nouvelle sélection et activer l'option Chercher dans la sélection pour verrouiller la nouvelle sélection.
Pour annuler une action de remplacement, appuyer sur Ctrl+Z ou sélectionner Édition | Annuler.

 

Utiliser des expressions régulières

Vous pouvez utiliser des expressions régulières (regex) pour trouver une ligne de texte. Pour ce faire, veuillez tout d'abord activer l'option Expression régulière (voir Trouver des options ci-dessus). Cela spécifie que le texte se trouvant dans le champ de saisie doit être évalué en tant qu'expression régulière. Ensuite, saisir l'expression régulière dans le champ de saisie. Pour obtenir de l'aide en ce qui concerne la construction d'une expression régulière, cliquer sur le bouton Générateur d'expression régulière, qui est situé à droite du champ de saisie (voir capture d'écran ci-dessous). Cliquer sur un élément dans le Générateur pour saisir le/s métacaractère/s regex correspondant dans le champ de saisie. La capture d'écran ci-dessous affiche une expression régulière simple pour trouver des adresses e-mail. Pour consulter une brève description des métacaractères, voir la section Métacaractères d'expression régulière ci-dessous.

Click to expand/collapse

 

Métacaractères d'expression régulière

Ci-dessous, vous trouverez une liste des métacaractères d'expression régulière.

 

.

Correspond à n'importe quel caractère. Il s'agit d'un espace réservé pour un seul caractère.

(

Marque le début d'une expression balisée.

)

Marque la fin d'une expression balisée.

(abc)

Les métacaractères ( et ) marquent le début et la fin d'une expression balisée. Les expressions balisées peuvent être utiles lorsque vous devez baliser (« vous souvenir») une région correspondante afin de pouvoir vous y référer ultérieurement (back-reference). Vous pouvez baliser jusqu'à neuf expressions (et puis les back-referencer plus tard, dans le champ Chercher ou Remplacer)

 

Par exemple, (the) \1 correspond au string the the. Cette expression peut être expliquée littéralement comme suit : correspondre au string "the" (et s'en souvenir en tant que région balisée), suivi d'un espace, suivi d'une back-reference à la région balisée correspondante précédemment

\n

n est une variable qui peut prendre des valeurs d'entier de 1 à 9. L'expression se réfère à la première jusqu'à la neuvième région balisée lors du remplacement. Par exemple, si le string de recherche est Fred([1-9])XXX et que le string de remplacement est Sam\1YYY, cela signifie que dans le string de recherche, il y a une expression balisée qui est (implicitement) indexée avec le numéro 1 ; dans le string de remplacement, l'expression balisée est référencée avec \1. Si la commande chercher-remplacer est appliquée à Fred2XXX, cela génèrera Sam2YYY.

\<

Correspond au début d'un mot.

\>

Correspond à la fin d'un mot.

\x

Vous permet d'utiliser un caractère x, qui aurait généralement une signification particulière. Par exemple, \[ serait interprété comme [ et non pas comme le début d'un ensemble de caractères.

[...]

Indique un ensemble de caractères. Par exemple, [abc] signifie un des caractères a, b ou c. Vous pouvez aussi utiliser des séries : par exemple [a-z] pour n'importe quel caractère en minuscule.

[^...]

Le complément des caractères dans l'ensemble. Par exemple, [^A-Za-z] signifie importe quel caractère sauf un caractère alphabétique.

^

Correspond au début d'une ligne (sauf si utilisé dans un ensemble, voir ci-dessus).

$

Correspond à la fin d'une ligne. Par exemple : A+$ pour trouver un ou plusieurs "A" à la fin de la ligne.

*

Correspond 0 ou plus. Par exemple, Sa*m correspond à Sm, Sam, Saam, Saaam etc.

+

Correspond 1 ou plus. Par exemple, Sa+m  correspond à Sam, Saam, Saaam etc.

 

 

Représentation de caractères spéciaux

Veuillez noter les expressions suivantes.

 

\r

Retour de chariot (CR). Vous pouvez utiliser CR (\r) ou LF (\n) pour trouver ou créer une nouvelle ligne

\n

Saut de ligne (LF). Vous pouvez utiliser CR (\r) ou LF (\n) pour trouver ou créer une nouvelle ligne

\t

Caractère de tabulation

\\

Utiliser ce signe pour échapper des caractères qui apparaissent dans l'expression regex, par exemple : \\\n

 

Exemples d'expression régulière

Cet exemple montre comment chercher et remplacer du texte à l'aide d'expressions régulières. Dans la plupart des cas, la recherche et le remplacement de texte est une opération simple ne nécessitant pas l'utilisation d'expressions régulières. Néanmoins, dans certaines instances, il se peut que vous ayez à manipuler des textes qui ne permettent pas des opérations de recherche et de remplacement. Par exemple, vous avez un fichier XML de plusieurs milliers de lignes et que vous devez renommer certains éléments dans une opération, sans toucher au contenu qui se trouve à l'intérieur. Autre exemple : vous souhaitez changer l'ordre de plusieurs attributs d'un élément. Vous pourrez recourir aux expressions régulières, en éliminant une grande partie du travail que vous auriez dû effectuer manuellement normalement.

 
 

Exemple 1 : renommer les éléments

L'échantillon de code ci-dessous contient une liste de livres. Si vous souhaitez remplacer l'élément <Category> de chaque livre en <Genre>, une des possibilités est d'utiliser des expressions régulières.

 

<?xml version="1.0" encoding="UTF-8"?>
<books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="books.xsd">
  <book id="1">
    <author>Mark Twain</author>
    <title>The Adventures of Tom Sawyer</title>
    <category>Fiction</category>
    <year>1876</year>
  </book>
  <book id="2">
    <author>Franz Kafka</author>
    <title>The Metamorphosis</title>
    <category>Fiction</category>
    <year>1912</year>
  </book>
  <book id="3">
    <author>Herman Melville</author>
    <title>Moby Dick</title>
    <category>Fiction</category>
    <year>1851</year>
  </book>
</books>

 

Pour obtenir le résultat souhaité, suivre les étapes suivantes :

 

1.Appuyer sur Ctrl+H pour ouvrir la fenêtre Chercher et remplacer.
2.Cliquer sur Utiliser expression régulière _ic_find_regex.
3.Dans le champ Chercher, saisir le texte suivant : <category>\(.+\)</category> . Cette expression régulière correspond à tous les éléments category, et ceux-ci sont marqués.

inc-RegexExample01

Afin de correspondre au texte intérieur de chaque élément (qui n'est pas connu à l'avance), nous utilisons l'expression balisée \(.+\) . L'expression \(.+\) signifie "correspond avec une ou plusieurs occurrences d'un caractère, dans ce cas .+ , et se souvenir de cette correspondance".  Comme indiqué dans l'étape suivante, nous aurons besoin de la référence à l'expression balisée ultérieurement.

 

4.Dans le champ Remplacer, saisir le texte suivant : <genre>\1</genre> . Cette expression régulière définit le texte de remplacement. Veuillez noter qu'elle utilise une back-reference \1 à l'expression balisée précédemment du champ Chercher. Dans d'autre mots, \1 dans ce contexte signifie "le texte intérieur de l'élément actuellement correspondant <category>".
5.Cliquer Remplacer tout _ic_regex_replaceall et observer les résultats. Tous les éléments category sont maintenant renommés en genre.

 

Exemple 2 : changer l'ordre des attributs

L'échantillon de code XML ci-dessous contient une liste de produits. Chaque élément de produit contient deux attributs : id et un size. Si votre intention est de changer l'ordre des attributs id et size dans chaque élément product (autrement dit, l'attribut size devrait apparaître avant id). Un des moyen de régler ce problème est d'utiliser des expressions régulières.

 

<?xml version="1.0" encoding="UTF-8"?>
<products xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="products.xsd">
  <product id="1" size="10"/>
  <product id="2" size="20"/>
  <product id="3" size="30"/>
  <product id="4" size="40"/>
  <product id="5" size="50"/>
  <product id="6" size="60"/>
</products>

 

Pour obtenir le résultat souhaité, suivre les étapes suivantes :

 

1.Appuyer sur Ctrl+H pour ouvrir la fenêtre Chercher et remplacer.
2.Cliquer sur Utiliser expression régulière _ic_find_regex.
3.Dans le champ Chercher, saisir le texte suivant : <product id="\(.+\)" size="\(.+\)"/> . Cette expression régulière correspond à un élément de produit dans le document XML. Veuillez noter que, pour correspondre à la valeur de chaque attribut (qui n'est pas connu à l'avance), une expression balisée \(.+\) est utilisée deux fois. Cette expression \(.+\) correspond à la valeur de chaque attribut (présumé avoir une ou plusieurs occurrences de tout caractère, donc .+ ).
4.Dans le champ Remplacer, saisir le texte suivant : <product size="\2" id="\1"/> . Cette expression régulière contient le texte de remplacement pour chaque élément de produit correspondant. Veuillez noter qu'elle utilise deux références \1 et \2 . Celles-ci correspond aux expressions balisées du champ Chercher. En d'autres termes, \1 signifie "la valeur de l'attribut id" et \2 signifie "la valeur de l'attribut size".

inc-RegexExample02

6.Cliquer Remplacer tout _ic_regex_replaceall et observer les résultats. Tous les éléments product ont été mis à jour de manière à ce que l'attribut size apparaisse avant l'attribut id.

 


© 2018 Altova GmbH