Trouver et remplacer

Vous pouvez facilement naviguer dans votre document à l’aide d’un clavier et d’une souris, mais si vous avez de nombreuses pages à parcourir, il faudra un certain temps pour trouver un texte spécifique dans un long document. Cela prendra plus de temps lorsque vous souhaiterez remplacer certains caractères ou mots que vous avez utilisés dans votre document. La fonctionnalité “Rechercher et remplacer” permet de rechercher une séquence de caractères dans un document et de la remplacer par une autre séquence de caractères.

Aspose.Words vous permet de rechercher une chaîne ou un modèle d’expression régulière spécifique dans votre document et de le remplacer par une alternative sans installer ni utiliser d’applications supplémentaires telles que Microsoft Word. Cela accélérera de nombreuses tâches de saisie et de formatage, vous faisant potentiellement économiser des heures de travail.

Cet article explique comment appliquer le remplacement de chaîne et les expressions régulières avec la prise en charge des métacaractères.

Façons de rechercher et de remplacer

Aspose.Words propose deux manières d’appliquer l’opération de recherche et de remplacement en utilisant les éléments suivants:

  1. Remplacement simple de chaîne – pour rechercher et remplacer une chaîne spécifique par une autre, vous devez spécifier une chaîne de recherche (caractères alphanumériques) qui sera remplacée selon toutes les occurrences par une autre chaîne de remplacement spécifiée. Les deux chaînes ne doivent pas contenir de symboles. Tenez compte du fait que la comparaison de chaînes peut être sensible à la casse, ou que vous n’êtes peut-être pas sûr de l’orthographe ou que vous avez plusieurs orthographes similaires.
  2. Expressions régulières – pour spécifier une expression régulière afin de rechercher les correspondances exactes de chaînes et de les remplacer en fonction de votre expression régulière. Notez qu’un mot est défini comme étant composé uniquement de caractères alphanumériques. Si le remplacement est exécuté avec uniquement des mots entiers correspondant et que la chaîne d’entrée contient des symboles, aucune phrase ne sera trouvée.

De plus, vous pouvez utiliser des métacaractères spéciaux avec un simple remplacement de chaîne et des expressions régulières pour spécifier des sauts dans l’opération de recherche et de remplacement.

Aspose.Words présente la fonctionnalité de recherche et de remplacement avec l’espace de noms Aspose.Words.Replacing. Vous pouvez travailler avec de nombreuses options pendant le processus de recherche et de remplacement à l’aide de la classe FindReplaceOptions.

Rechercher et remplacer du texte à l’aide du remplacement de chaîne simple

Vous pouvez utiliser l’une des méthodes Replace pour rechercher ou remplacer une chaîne particulière et renvoyer le nombre de remplacements effectués. Dans ce cas, vous pouvez spécifier une chaîne à remplacer, une chaîne qui remplacera toutes ses occurrences, si le remplacement est sensible à la casse et si seuls les mots autonomes seront affectés.

L’exemple de code suivant montre comment rechercher la chaîne “CustomerName” et la remplacer par la chaîne “James Bond”:

Vous pouvez remarquer la différence entre le document avant d’appliquer un simple remplacement de chaîne:

avant le remplacement de chaîne simple

Et après avoir appliqué un simple remplacement de chaîne:

après un simple remplacement de chaîne

Rechercher et remplacer du texte à l’aide d’expressions régulières

Une expression régulière (regex) est un modèle qui décrit une certaine séquence de texte. Supposons que vous souhaitiez remplacer toutes les doubles occurrences d’un mot par une seule occurrence de mot. Vous pouvez ensuite appliquer l’expression régulière suivante pour spécifier le modèle de mot double: ([a-zA-Z]+) \1.

Utilisez l’autre méthode Replace pour rechercher et remplacer des combinaisons de caractères particulières en définissant le paramètre Regex comme modèle d’expression régulière pour rechercher des correspondances.

L’exemple de code suivant montre comment remplacer les chaînes qui correspondent à un modèle d’expression régulière par une chaîne de remplacement spécifiée:

Vous pouvez remarquer la différence entre le document avant d’appliquer le remplacement de chaîne par des expressions régulières:

avant-remplacement-par-expressions-régulières

Et après avoir appliqué le remplacement de chaîne par des expressions régulières:

après-remplacement-par-expressions-régulières

Rechercher et remplacer une chaîne à l’aide de métacaractères

Vous pouvez utiliser des métacaractères dans la chaîne de recherche ou dans la chaîne de remplacement si un texte ou une expression particulière est composé de plusieurs paragraphes, sections ou pages. Certains métacaractères incluent &p pour un saut de paragraphe, &b pour un saut de section, & m pour un saut de page et &l pour un saut de ligne.

L’exemple de code suivant montre comment remplacer du texte par un paragraphe et un saut de page:

Vous pouvez rechercher et remplacer du texte dans la section en-tête/pied de page d’un document Word à l’aide de la classe HeaderFooter.

L’exemple de code suivant montre comment remplacer le texte de la section d’en-tête dans votre document:

Vous pouvez remarquer la différence entre le document avant d’appliquer le remplacement de la chaîne d’en-tête:

avant d'appliquer le remplacement de la chaîne d'en-tête

Et après avoir appliqué le remplacement de la chaîne d’en-tête:

après application du remplacement de la chaîne d'en-tête

L’exemple de code permettant de remplacer le texte de la section de pied de page de votre document est très similaire à l’exemple de code d’en-tête précédent. Il vous suffit de remplacer les deux lignes suivantes:

HeaderFooter header = headersFooters[HeaderFooterType.HeaderPrimary];
header.Range.Replace("Aspose.Words", "Remove", options);

Avec ce qui suit:

HeaderFooter footer = headersFooters[HeaderFooterType.FooterPrimary];
int currentYear = System.DateTime.Now.Year;
footer.Range.Replace("(C) 2006 Aspose Pty Ltd.", $"Copyright (C) {currentYear} by Aspose Pty Ltd.", options);

Vous pouvez remarquer la différence entre le document avant d’appliquer le remplacement de la chaîne de pied de page:

avant d'appliquer le remplacement de la chaîne de pied de page

Et après avoir appliqué le remplacement de la chaîne de pied de page:

après l'application du remplacement de la chaîne de pied de page

Ignorer le texte lors de la recherche et du remplacement de

Lors de l’application de l’opération de recherche et de remplacement, vous pouvez ignorer certains segments du texte. Ainsi, certaines parties du texte peuvent être exclues de la recherche, et la recherche et le remplacement ne peuvent être appliqués qu’aux parties restantes.

Aspose.Words fournit de nombreuses propriétés de recherche et de remplacement pour ignorer le texte tel que IgnoreDeleted, IgnoreFieldCodes, IgnoreFields, IgnoreFootnotes et IgnoreInserted.

L’exemple de code suivant montre comment ignorer le texte dans les révisions supprimées:

Personnaliser l’opération Rechercher et remplacer

Aspose.Words fournit de nombreux properties différents pour rechercher et remplacer du texte, par exemple en appliquant un format spécifique avec les propriétés ApplyFont et ApplyParagraphFormats, en utilisant des substitutions dans les modèles de remplacement avec la propriété UseSubstitutions, etc.

L’exemple de code suivant montre comment mettre en surbrillance un mot spécifique dans votre document:

Aspose.Words vous permet d’utiliser l’interface IReplacingCallback pour créer et appeler une méthode personnalisée lors d’une opération de remplacement. Vous pouvez avoir certains cas d’utilisation dans lesquels vous devez personnaliser l’opération de recherche et de remplacement, comme le remplacement du texte spécifié par une expression régulière par des balises HTML, donc fondamentalement, vous appliquerez le remplacement en insérant du HTML.

Si vous devez remplacer une chaîne par une balise HTML, appliquez l’interface IReplacingCallback pour personnaliser l’opération de recherche et de remplacement afin que la correspondance commence au début d’une exécution avec le nœud de correspondance de votre document. Donnons quelques exemples d’utilisation de IReplacingCallback.

L’exemple de code suivant montre comment remplacer le texte spécifié par HTML:

L’exemple de code suivant montre comment mettre en surbrillance les nombres positifs en vert et les nombres négatifs en rouge:

L’exemple de code suivant montre comment ajouter un numéro de ligne à chaque ligne: