2017-03-22 2 views
-2

Je crée un studio visuel C# mot ajouter dans l'application. À l'intérieur du Ribbon.cs, ci-dessous est le code regex à l'intérieur de l'événement de bouton pour trouver et remplacer. Mon souci est, pour les marques **, je dois trouver le document de mot entier et remplacer le texte de recherche par regex. Veuillez aviser. Je vous remercie.C# Word 2007 Ajouter In Regex

Regex.Replace (**, @ "Rechercher", "Remplacer");

+0

exemple VBA - [Recherche et remplacement de texte ou mise en forme] (https://msdn.microsoft.com/en-us/library/vs/alm/aa211953 (v = office.11) .aspx) - notez que 'ActiveDocument.Content' renvoie une plage pour le document entier. – stuartd

Répondre

1

Vous ne pouvez pas utiliser Regex avec Word, car le document Word n'est pas une chaîne. Mais vous pouvez utiliser la recherche intégrée de Word et la remplacer par des caractères génériques.

Voici à quoi cela ressemble dans VBA, notez la propriété MatchWildcards. Vous pourrez facilement le réécrire en C#.

Selection.Find.ClearFormatting 
Selection.Find.Replacement.ClearFormatting 
With Selection.Find 
    .Text = "Find" 
    .Replacement.Text = "Replace" 
    .Forward = True 
    .Wrap = wdFindContinue 
    .Format = False 
    .MatchCase = False 
    .MatchWholeWord = False 
    .MatchAllWordForms = False 
    .MatchSoundsLike = False 
    .MatchWildcards = True 
End With 
Selection.Find.Execute Replace:=wdReplaceAll 
+0

Merci pour la réponse, Puis-je savoir en utilisant des caractères génériques puis-je remplacer le texte comme regex, par exemple trouver A ([s-u] *) S, en remplacement, B $ 1B. Je veux dire le facteur dollar. – Safa

+0

Non, la syntaxe générique Word est complètement différente de la syntaxe regex, mais elle est également très puissante. Il y a beaucoup de documentation sur cette syntaxe sur le web, par exemple ici: https://support.office.com/fr-fr/article/Find-and-replace-text-and-other-data-in- a-Word-document-c6728c16-469e-43cd-afe4-7708c6c779b7? ui = en-US & rs = en-US & ad = US & fromAR = 1 –