Altova XMLSpy 2024 Enterprise Edition

Icônes et raccourcis

 

Commande

Icône

Raccourci

Recherche

icFind

Ctrl+F

Trouver suivant

icFindNext

F3

 

Recherche

La commande Recherche affiche le dialogue Chercher/Remplacer (voir la capture d’écran ci-dessous) dans lequel vous pouvez spécifier le string que vous souhaitez trouver et les autres options pour la recherche. Pour trouver le texte, le saisir dans le champ de saisie ou utiliser la liste de choix pour sélectionner un terme parmi les 10 derniers termes recherchés, puis spécifier les options de recherche.

 

La commande Recherche peut aussi être utilisée pour trouver des noms de fichier et de dossier lorsqu'un projet est sélectionné dans la fenêtre Projet.

 

Trouver suivant

La commande Trouver suivant répète la dernière commande Chercher. Elle cherche l'occurrence suivante du texte saisi.

 

La commande Trouver suivant peut aussi être utilisées pour trouver des noms de fichier et de dossier lorsqu'un projet est sélectionné pour la fenêtre Projet.

 

Dialogue Chercher/ Remplacer

Le dialogue Chercher/ Remplacer décrit ci-dessous apparaît dans les Mode Texte et Mode Grille. Les options de Recherche 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 : La recherche sensible à la casse lorsqu’elle est activée (Address n’est pas la même chose que address).

Correspondance du mot entier : Seuls les mots exacts contenus dans le texte seront comparés. Par exemple, pour le string entrée fit, avec Correspondance mot entier activée, seul le mot fit correspondra avec le string de recherche ; le fit dans fitness, par exemple, n’aura pas de correspondance.

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.

Résultats de filtrage : Choisir un ou plusieurs composants de document à l'endroit où vous souhaitez effectuer la recherche.

Trouver ancre : Lorsqu'un terme de recherche est saisi, les correspondances dans le document sont marquées et une de ces correspondances sera marquée comme sélection actuelle. La bascule Trouver l’ancre détermine si cette première sélection actuelle est effectuée relativement à la position du curseur ou pas. Si Trouver l’ancre est activée, la première correspondance actuellement sélectionnée sera la sélection suivante de l'emplacement du curseur actuel. Si Trouver l’ancre est désactivé, la première correspondance actuellement sélectionnée sera la première correspondance dans le document, en commençant par le 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. Sinon, le document entier sera cherché. Avant de sélectionner une nouvelle série de texte, déverrouillez la sélection actuelle en désactivant l’option Chercher dans la sélection.

 

Expressions régulières

Vous pouvez utiliser des expressions régulières (regex) pour trouver un string de texte. Pour ce faire, veuillez tout d'abord activer l'option Expression régulière (voir Trouver des options ci-dessus). Cette fonction permet de spécifier que le texte contenu dans le champ de saisie doit être évalué en tant qu'expression régulière. Ensuite, saisissez l'expression régulière dans le champ de recherche du terme. Pour obtenir de l'aide en ce qui concerne la construction d'une expression régulière, cliquez 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). Cliquez sur un item dans le Générateur pour saisir les métacaractères regex correspondants dans le champ de saisie. La capture d'écran ci-dessous montre 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.

Cliquez pour expansion/compression

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 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.

 

\

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

\

Saut de ligne (LF). Vous pouvez utiliser CR (\) ou LF (\) 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 : \\\

 

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.

 

 

© 2017-2023 Altova GmbH