Utiliser les options de recherche de votre complément Word pour rechercher du texte

Les compléments doivent fréquemment agir en fonction du texte d’un document. Une méthode de recherche est exposée par chaque contrôle de contenu (notamment Body, Paragraph, Range, Table, TableRow et l’objet ContentControl de base). Cette méthode accepte une chaîne (ou une expression générique) représentant le texte que vous recherchez et un objet SearchOptions . Elle renvoie une collection de plages correspondant au texte de recherche.

Importante

Le client Word peut limiter les options de recherche disponibles. Pour plus d’informations sur la prise en charge actuelle, consultez Rechercher et remplacer du texte.

Options de recherche

Les options de recherche sont une collection de valeurs booléennes qui définissent comment le paramètre de recherche doit être traité.

Propriété Description
ignorePunct Obtient ou définit une valeur indiquant s’il faut ignorer tous les caractères de ponctuation entre les mots. Correspond à la case à cocher « Ignorer les caractères de ponctuation » dans la boîte de dialogue Rechercher et remplacer .
ignoreSpace Obtient ou définit une valeur indiquant s’il faut ignorer tous les espaces entre les mots. Correspond à la case à cocher « Ignorer les espaces blancs » dans la boîte de dialogue Rechercher et remplacer .
matchCase Obtient ou définit une valeur indiquant s’il faut effectuer une recherche respectant la casse. Correspond à la case à cocher « Match case » dans la boîte de dialogue Rechercher et remplacer .
matchPrefix Obtient ou définit une valeur indiquant si la recherche doit porter sur les mots qui commencent par la chaîne entrée. Correspond à la case à cocher « Préfixe de correspondance » dans la boîte de dialogue Rechercher et remplacer .
matchSuffix Obtient ou définit une valeur indiquant si la recherche doit porter sur les mots qui se terminent par la chaîne entrée. Correspond à la case à cocher « Correspondance du suffixe » dans la boîte de dialogue Rechercher et remplacer .
matchWholeWord Obtient ou définit une valeur indiquant si la recherche doit porter uniquement sur les mots complets et non pas sur du texte qui fait partie d’un mot plus long. Correspond à la case à cocher « Rechercher uniquement des mots entiers » dans la boîte de dialogue Rechercher et remplacer .
matchWildCards Obtient ou définit une valeur indiquant si la recherche est effectuée à l’aide d’opérateurs de recherche spéciaux. Correspond à la case à cocher « Utiliser des caractères génériques » dans la boîte de dialogue Rechercher et remplacer .

Recherche pour les caractères spéciaux

Le tableau suivant répertorie la notation de recherche pour certains caractères spéciaux.

Trouver Notation
Marque de paragraphe ^P
Marque de tabulation ^T
N’importe quel caractère ^?
N’importe quel chiffre ^#
Toute lettre ^$
Caractère d’insertion ^^
Caractère de section ^%
Caractère de paragraphe ^C
Saut de colonne ^¡n
Tiret em ^+
Tiret en ^=
Marque de note de fin ^E
Champ ^D
Note de bas de page ^F
Graphique ^G
Saut de ligne manuel ^L
Saut de page manuel ^M
Trait d’union insécable ^~
Espace insécable ^s
Trait d’union facultatif ^-
Saut de section ^B
Espace blanc ^W

Aide concernant les caractères génériques

Le tableau suivant fournit une aide concernant les caractères génériques de l’API JavaScript pour Word.

Trouver Caractère générique Exemple
Un seul caractère ? s?t trouve sot et set.
Une chaîne de caractères * s*n son et solution.
Début d’un mot < <(inter) trouve intéressant et intercepte, mais ne s’écharde pas.
Fin d’un mot > (in)> trouve dans et à l’intérieur, mais pas intéressant.
Un des caractères spécifiés [ ] l[ea]s trouve les et las.
Tout caractère de cette plage [-] [r-t]ight trouve droite, vue, et serré. Les plages doivent être définies dans l’ordre alphabétique ou croissant.
Tout caractère à l’exception de ceux de la plage entre les crochets [!x-z] p[!a-m]re trouve pore et pure, mais pas pare et pire.
Exactement n occurrences du caractère ou de l’expression précédent n bal{2}ade trouve ballade mais pas balade.
Au moins n occurrences du caractère ou de l’expression précédente {n,} bal{1,}ade recherche balade et ballade.
Occurrences de n à m du caractère ou de l’expression précédente {n,m} 10{1,3} trouve 10, 100 et 1 000.
Une ou plusieurs occurrences de l’expression ou du caractère précédent @ mar@e trouve mare et marre.

Caractères spéciaux d’échappement

La recherche par caractères génériques est essentiellement identique à la recherche sur une expression régulière. Il existe des caractères spéciaux dans les expressions régulières, notamment « [ », « ] », « ( », « ) », « { », « } », « * », « ? », « », «< », « »,> « ! » et « @ ». Si l’un de ces caractères fait partie de la chaîne littérale que le code recherche, il doit être placé dans une séquence d’échappement, afin que Word sache qu’il doit être traité littéralement et non comme faisant partie de la logique de l’expression régulière. Pour échapper un caractère dans la recherche d’interface utilisateur Word, vous devez le faire précéder d’une barre oblique inverse ('\'), mais pour l’échapper par programmation, placez-le entre les caractères « [] ». Par exemple, « [*]* » recherche toute chaîne commençant par un « * » suivi d’un nombre quelconque d’autres caractères.

Exemples

Les exemples suivants illustrent des scénarios courants.

// Run a batch operation against the Word object model.
await Word.run(async (context) => {

    // Queue a command to search the document and ignore punctuation.
    const searchResults = context.document.body.search('video you', {ignorePunct: true});

    // Queue a command to load the font property values.
    searchResults.load('font');

    // Synchronize the document state.
    await context.sync();
    console.log('Found count: ' + searchResults.items.length);

    // Queue a set of commands to change the font for each found item.
    for (let i = 0; i < searchResults.items.length; i++) {
        searchResults.items[i].font.color = 'purple';
        searchResults.items[i].font.highlightColor = '#FFFF00'; //Yellow
        searchResults.items[i].font.bold = true;
    }

    // Synchronize the document state.
    await context.sync();
});

Effectuer une recherche de préfixe

// Run a batch operation against the Word object model.
await Word.run(async (context) => {

    // Queue a command to search the document based on a prefix.
    const searchResults = context.document.body.search('vid', {matchPrefix: true});

    // Queue a command to load the font property values.
    searchResults.load('font');

    // Synchronize the document state.
    await context.sync();
    console.log('Found count: ' + searchResults.items.length);

    // Queue a set of commands to change the font for each found item.
    for (let i = 0; i < searchResults.items.length; i++) {
        searchResults.items[i].font.color = 'purple';
        searchResults.items[i].font.highlightColor = '#FFFF00'; //Yellow
        searchResults.items[i].font.bold = true;
    }

    // Synchronize the document state.
    await context.sync();
});

Effectuer une recherche de suffixe

// Run a batch operation against the Word object model.
await Word.run(async (context) => {

    // Queue a command to search the document for any string of characters after 'ly'.
    const searchResults = context.document.body.search('ly', {matchSuffix: true});

    // Queue a command to load the font property values.
    searchResults.load('font');

    // Synchronize the document state.
    await context.sync();
    console.log('Found count: ' + searchResults.items.length);

    // Queue a set of commands to change the font for each found item.
    for (let i = 0; i < searchResults.items.length; i++) {
        searchResults.items[i].font.color = 'orange';
        searchResults.items[i].font.highlightColor = 'black';
        searchResults.items[i].font.bold = true;
    }

    // Synchronize the document state.
    await context.sync();
});

Effectuer une recherche à l’aide d’un caractère générique

// Run a batch operation against the Word object model.
await Word.run(async (context) => {

    // Queue a command to search the document with a wildcard
    // for any string of characters that starts with 'to' and ends with 'n'.
    const searchResults = context.document.body.search('to*n', {matchWildcards: true});

    // Queue a command to load the font property values.
    searchResults.load('font');

    // Synchronize the document state.
    await context.sync();
    console.log('Found count: ' + searchResults.items.length);

    // Queue a set of commands to change the font for each found item.
    for (let i = 0; i < searchResults.items.length; i++) {
        searchResults.items[i].font.color = 'purple';
        searchResults.items[i].font.highlightColor = 'pink';
        searchResults.items[i].font.bold = true;
    }

    // Synchronize the document state.
    await context.sync();
});

Recherche d’un caractère spécial

// Run a batch operation against the Word object model.
await Word.run(async (context) => {

    // Queue a command to search the document for tabs.
    const searchResults = context.document.body.search('^t');

    // Queue a command to load the font property values.
    searchResults.load('font');

    // Synchronize the document state.
    await context.sync();
    console.log('Found count: ' + searchResults.items.length);

    // Queue a set of commands to change the font for each found item.
    for (let i = 0; i < searchResults.items.length; i++) {
        searchResults.items[i].font.color = 'purple';
        searchResults.items[i].font.highlightColor = 'pink';
        searchResults.items[i].font.bold = true;
    }

    // Synchronize the document state.
    await context.sync();
});

Recherche l’utilisation d’un caractère générique pour un caractère spécial placé dans une séquence d’échappement

Comme indiqué précédemment dans Les caractères spéciaux d’échappement, il existe des caractères spéciaux utilisés par les expressions régulières. Pour qu’une recherche générique trouve l’un de ces caractères spéciaux par programmation, il doit être placé dans une séquence d’échappement à l’aide de « [ » et « ] ». Cet exemple montre comment rechercher le caractère spécial « { » à l’aide d’une recherche générique.

// Run a batch operation against the Word object model.
await Word.run(async (context) => {

    // Queue a command to search the document with a wildcard for an escaped opening curly brace.
    const searchResults = context.document.body.search('[{]', { matchWildcards: true });

    // Queue a command to load the font property values.
    searchResults.load('font');

    // Synchronize the document state.
    await context.sync();
    console.log('Found count: ' + searchResults.items.length);

    // Queue a set of commands to change the font for each found item.
    for (let i = 0; i < searchResults.items.length; i++) {
        searchResults.items[i].font.color = 'purple';
        searchResults.items[i].font.highlightColor = 'pink';
        searchResults.items[i].font.bold = true;
    }

    // Synchronize the document state.
    await context.sync();
});

Essayer des exemples de code dans Script Lab

Obtenez le complément Script Lab et essayez les exemples de code fournis dans cet article. Pour en savoir plus sur Script Lab, consultez Explorer l’API JavaScript Office à l’aide de Script Lab.

Voir aussi

Vous trouverez plus d’informations dans les sections suivantes :