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 vous 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” vous 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 spécifique ou un modèle d’expression régulière dans votre document et de le remplacer par une alternative sans installer et utiliser d’applications supplémentaires telles que Microsoft Word. Cela accélérera de nombreuses tâches de saisie et de formatage, vous permettant potentiellement d’économiser des heures de travail.

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

Façons de trouver et de remplacer

Aspose.Words fournit deux façons d’appliquer l’opération de recherche et de remplacement à l’aide des éléments suivants:

  1. Simple string replacement - 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 va être remplacée en fonction de 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 vous pouvez ne pas être sûr de l’orthographe ou avoir plusieurs orthographes similaires.
  2. Regular expressions - pour spécifier une expression régulière pour trouver les correspondances de chaîne exactes et 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 un remplacement est exécuté avec uniquement des mots entiers correspondants 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 pauses dans l’opération de recherche et de remplacement.

Aspose.Words présente la fonctionnalité rechercher et remplacer avec l’espace de noms Aspose.Words.Replacing. Vous pouvez utiliser de nombreuses options pendant le processus de recherche et de remplacement en utilisant la classe FindReplaceOptions.

Rechercher et remplacer du Texte à l’Aide d’un simple Remplacement de Chaîne

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 trouver 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:

before-simple-string-replacement-aspose-words-cpp

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

after-simple-string-replacement-aspose-words-cpp

Rechercher et remplacer du Texte à l’aide d’Expressions Régulières

Une expression régulière (regex) est un motif qui décrit une certaine séquence de texte. Supposons que vous souhaitiez remplacer toutes les occurrences doubles d’un mot par une occurrence d’un seul mot. Ensuite, vous pouvez appliquer l’expression régulière suivante pour spécifier le modèle de double mot: ([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 trouver 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:

before-replacement-with-regular-expressions-aspose-words-cpp

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

after-replacement-with-regular-expressions-aspose-words-cpp

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 la chaîne de remplacement si un texte ou une phrase particulière est composé de plusieurs paragraphes, sections ou pages. Certains des 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 le 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:

before-applying-header-string-replacement-aspose-words-cpp

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

after-applying-header-string-replacement-aspose-words-cpp

L’exemple de code pour remplacer le texte de la section de pied de page dans 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:

auto header = headersFooters->idx_get(HeaderFooterType::HeaderPrimary);
header->get_Range()->Replace(u"Aspose.Words", u"Remove", options);

Avec ce qui suit:

auto footer = headersFooters->idx_get(HeaderFooterType::FooterPrimary);
footer->get_Range()->Replace(u"(C) 2006 Aspose Pty Ltd.", u"Copyright (C) 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:

before-applying-footer-string-replacement-aspose-words-cpp

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

after-applying-footer-string-replacement-aspose-words-cpp

Ignorer le texte Pendant la Recherche et le remplacement

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, telles que IgnoreDeleted, IgnoreFieldCodes, IgnoreFields, IgnoreFootnotes, et IgnoreInserted.

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

Personnaliser l’opération de recherche et de remplacement

Aspose.Words fournit de nombreux properties différents pour rechercher et remplacer du texte, tels que l’application d’un format spécifique avec les propriétés ApplyFont et ApplyParagraphFormats, l’utilisation de substitutions dans les modèles de remplacement avec la propriété UseSubstitutions, et d’autres.

L’exemple de code suivant montre comment mettre en évidence 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 des cas d’utilisation où vous devez personnaliser l’opération de recherche et de remplacement, comme le remplacement du texte spécifié par une expression régulière avec des balises HTML, donc en gros, vous appliquerez le remplacement par l’insertion de 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 plusieurs 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 évidence les nombres positifs de couleur verte et les nombres négatifs de couleur rouge:

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