Share via


Verwenden von Suchoptionen in Ihrem Word-Add-In zum Suchen von Text

Add-Ins müssen häufig basierend auf dem Text eines Dokuments reagieren. Eine Suchmethode wird von jedem Inhaltssteuerelement verfügbar gemacht (dazu gehören Body, Paragraph, Range, Table, TableRow und das ContentControl-Basisobjekt ). Diese Methode akzeptiert eine Zeichenfolge (oder einen Wildcardausdruck), der den text darstellt, nach dem Sie suchen, und ein SearchOptions-Objekt . Es wird eine Auflistung von Bereichen zurückgegeben, die mit dem Suchtext übereinstimmen.

Wichtig

Der Word-Client kann die verfügbaren Suchoptionen einschränken. Weitere Informationen zur aktuellen Unterstützung finden Sie unter Suchen und Ersetzen von Text.

Suchoptionen

Die Suchoptionen sind eine Auflistung von booleschen Werten, die definieren, wie der Suchparameter behandelt werden sollte.

Eigenschaft Beschreibung
ignorePunct Ruft einen Wert ab, der angibt, ob alle Interpunktionszeichen zwischen Wörtern ignoriert werden sollen, oder legt diesen fest. Entspricht dem Kontrollkästchen "Interpunktionszeichen ignorieren" im Dialogfeld Suchen und Ersetzen .
ignoreSpace Ruft einen Wert ab, der angibt, ob alle Leerzeichen zwischen Wörtern ignoriert werden sollen, oder legt diesen fest. Entspricht dem Kontrollkästchen "Leerzeichen ignorieren" im Dialogfeld Suchen und Ersetzen .
matchCase Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob eine Suche zwischen Groß- und Kleinschreibung durchgeführt werden soll. Entspricht dem Kontrollkästchen "Groß-/Kleinschreibung abgleichen" im Dialogfeld Suchen und Ersetzen .
matchPrefix Ruft einen Wert ab, der angibt, ob Wörter beachtet werden sollen, die mit der Suchzeichenfolge beginnen, oder legt diesen fest. Entspricht dem Kontrollkästchen "Präfix übereinstimmen" im Dialogfeld Suchen und Ersetzen .
matchSuffix Ruft einen Wert ab, der angibt, ob Wörter beachtet werden sollen, die mit der Suchzeichenfolge enden, oder legt diesen fest. Entspricht dem Kontrollkästchen "Suffix übereinstimmen" im Dialogfeld Suchen und Ersetzen .
matchWholeWord Ruft einen Wert ab oder liegt ihn fest, der angibt, ob nur ganze Wörter gesucht werden sollen und kein Text, der Teil eines längeren Worts ist. Entspricht dem Kontrollkästchen "Nur ganze Wörter suchen" im Dialogfeld Suchen und Ersetzen .
matchWildcards Ruft einen Wert ab oder legt ihn fest, um anzugeben, ob die Suche mithilfe von speziellen Suchoperatoren ausgeführt wird. Entspricht dem Kontrollkästchen "Verwenden von Wildcards" im Dialogfeld Suchen und Ersetzen .

Search für Sonderzeichen

In der folgenden Tabelle ist die Suchnotation für bestimmte Sonderzeichen aufgeführt.

Finden Notation
Absatzmarke ^P
Tabstoppmarkierung ^T
Beliebiges Zeichen ^?
Beliebige Ziffer ^#
Beliebiger Buchstabe ^$
Caretzeichen ^^
Abschnittszeichen ^%
Absatzzeichen ^V
Spaltenumbruch ^N
Em-Strich ^+
En Bindestrich ^=
Endnotenmarkierung ^E
Feld ^D
Fußnotenmarke ^F
Grafik ^G
Manueller Zeilenumbruch ^L
Manueller Seitenwechsel ^M
Bindestrich ohne Unterbrechung ^~
Unterbrechungsfreies Leerzeichen ^s
Optionaler Bindestrich ^-
Abschnittsumbruch ^B
Leerzeichen ^W

Leitfaden zu Platzhaltern

Die folgende Tabelle enthält Anleitungen im Zusammenhang mit den Suchplatzhaltern der JavaScript-API für Word.

Finden Platzhalter Beispiel
Ein beliebiges Zeichen ? s? t sucht sat und legt es fest.
Eine beliebige Zeichenfolge * s*d findet sad und started.
Der Anfang eines Worts < <(inter) findet interessant und abfangen, aber nicht zerspliziert.
Das Ende eines Wortes > (in)> findet in und innerhalb, aber nicht interessant.
Eines der angegebenen Zeichen [ ] w[io]n findet win und won.
Beliebiges einzelnes Zeichen in diesem Bereich [-] [r-t]ight findet richtig, sichtbar und eng. Bereiche müssen in aufsteigender Reihenfolge sortiert sein.
Ein beliebiges einzelnes Zeichen mit Ausnahme der Zeichen im Bereich in eckigen Klammern [!x-z] t[!a-m]ck findet tock und tuck, jedoch nicht tack oder tick.
Genau n Vorkommen des vorherigen Zeichens oder Ausdrucks {n} fe{2}d findet feed, jedoch nicht fed.
Mindestens n Vorkommen des vorherigen Zeichens oder Ausdrucks {n,} fe{1,}d findet fed und feed.
Von n bis m Vorkommen des vorherigen Zeichens oder Ausdrucks {n,m} 10{1,3} findet 10, 100 und 1000.
Ein oder mehr Vorkommen des vorhergehenden Zeichens oder Ausdrucks @ lo@t findet lot und loot.

Sonderzeichen mit Escapezeichen versehen

Die Wildcardsuche ist im Wesentlichen identisch mit der Suche nach einem regulären Ausdruck. Es gibt Sonderzeichen in regulären Ausdrücken, einschließlich '[', ']', '(', ')', '{', '}', '*', '?', '<',> '', '!' und '@'. Wenn eines dieser Zeichen Teil der Literalzeichenfolge ist, nach der der Code sucht, muss es mit Escapezeichen versehen werden, damit Word weiß, dass es wörtlich und nicht als Teil der Logik des regulären Ausdrucks behandelt werden sollte. Um ein Zeichen in der Word Ui-Suche mit Escapezeichen zu versehen, würden Sie ihm einen umgekehrten Schrägstrich ("\") voranstellen. Um es jedoch programmgesteuert mit Escapezeichen zu versehen, setzen Sie es zwischen "[]"-Zeichen. Beispielsweise sucht "[*]*" nach einer beliebigen Zeichenfolge, die mit einem "*" beginnt, gefolgt von einer beliebigen Anzahl anderer Zeichen.

Beispiele

Die folgenden Beispiele veranschaulichen allgemeine Szenarien.

// 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();
});

Suche auf Grundlage eines Präfixes

// 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();
});

Suche auf Grundlage eines Suffixes

// 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();
});

Suche mithilfe eines Platzhalters

// 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();
});

Search für ein Sonderzeichen

// 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();
});

Search verwendung eines Wildcards für ein mit Escapezeichen versehenes Sonderzeichen

Wie bereits in Escape-Sonderzeichen erwähnt, gibt es Sonderzeichen, die von regulären Ausdrücken verwendet werden. Damit eine Wildcardsuche eines dieser Sonderzeichen programmgesteuert findet, muss es mit "[" und "]" mit Escapezeichen versehen werden. In diesem Beispiel wird gezeigt, wie das Sonderzeichen "{" mithilfe einer Wildcardsuche gesucht wird.

// 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();
});

Codebeispiele in Script Lab

Rufen Sie das Script Lab-Add-In ab, und probieren Sie die in diesem Artikel bereitgestellten Codebeispiele aus. Weitere Informationen zum Script Lab finden Sie unter Erkunden der Office JavaScript-API mithilfe von Script Lab.

Siehe auch

Weitere Informationen finden Sie im Folgenden: