Usar opciones de búsqueda en el complemento de Word para buscar texto

A menudo, los complementos deben actuar según el texto de un documento. Cada control de contenido expone un método de búsqueda ( incluidos Body, Paragraph, Range, Table, TableRow y el objeto ContentControl base). Este método toma una cadena (o expresión comodín) que representa el texto que está buscando y un objeto SearchOptions . Devuelve un conjunto de intervalos que coincide con el texto de búsqueda.

Importante

El cliente Word puede limitar las opciones de búsqueda disponibles. Para obtener más información sobre la compatibilidad actual, vea Buscar y reemplazar texto.

Opciones de búsqueda

Las opciones de búsqueda son un conjunto de valores booleanos que definen cómo se debe tratar el parámetro de búsqueda.

Propiedad Descripción
ignorePunct Obtiene o establece un valor que indica si quiere omitir todos los caracteres de puntuación entre palabras. Corresponde a la casilla "Omitir caracteres de puntuación" del cuadro de diálogo Buscar y reemplazar .
ignoreSpace Obtiene o establece un valor que indica si se deben omitir todos los espacios en blanco que haya entre palabras. Corresponde a la casilla "Omitir caracteres de espacio en blanco" del cuadro de diálogo Buscar y reemplazar .
matchCase Obtiene o establece un valor que indica si se debe realizar una búsqueda que distingue mayúsculas de minúsculas. Corresponde a la casilla "Caso de coincidencia" del cuadro de diálogo Buscar y reemplazar .
matchPrefix Obtiene o establece un valor que indica si se van a buscar palabras que empiecen por la cadena de búsqueda. Corresponde a la casilla "Prefijo de coincidencia" del cuadro de diálogo Buscar y reemplazar .
matchSuffix Obtiene o establece un valor que indica si se van a buscar palabras que finalicen por la cadena de búsqueda. Corresponde a la casilla "Sufijo de coincidencia" del cuadro de diálogo Buscar y reemplazar .
matchWholeWord Obtiene o establece un valor que indica si la operación debe buscar solo palabras completas y no texto que forme parte de una palabra más larga. Corresponde a la casilla "Buscar solo palabras completas" en el cuadro de diálogo Buscar y reemplazar .
matchWildcards Obtiene o establece un valor que indica si la búsqueda se realizará usando operadores de búsqueda especiales. Corresponde a la casilla "Usar caracteres comodín" del cuadro de diálogo Buscar y reemplazar .

Buscar caracteres especiales

En la tabla siguiente se muestra la notación de búsqueda de determinados caracteres especiales.

Buscar Notación
Marca de párrafo ^P
Marca de tabulación ^T
Cualquier carácter ^?
Cualquier dígito ^#
Cualquier letra ^$
Carácter de intercalación ^^
Carácter de sección ^%
Carácter de párrafo ^V
Salto de columna ^N
Guión em ^+
Guión en ^=
Marca de notas al final ^e
Campo ^D
Marca de nota al pie ^F
Gráfico ^G
Salto de línea manual ^L
Salto de página manual ^M
Guion no desenlace ^~
Espacio sin interrupción ^s
Guion opcional ^-
Salto de sección ^B
Espacio en blanco ^W

Guía de caracteres comodín

La tabla siguiente proporciona una guía sobre los caracteres comodín de búsqueda de la API de JavaScript de Word.

Buscar Carácter comodín Ejemplo
Cualquier carácter ? s?t busca sat y set.
Cualquier cadena de caracteres * s*d busca sad y started.
Principio de palabra < <(inter) encuentra interesante e interceptado, pero no astillado.
Final de palabra > (in)> encuentra en y dentro, pero no es interesante.
Uno de los caracteres especificados [ ] w[io]n busca win y won.
Cualquier carácter individual en este intervalo [-] [r-t]ight encuentra la derecha, la vista y apretada. Los intervalos deben estar en orden ascendente.
Cualquier carácter individual excepto los caracteres que aparecen en el intervalo dentro de los corchetes [!x-z] t[!a-m]ck busca tock y tuck, pero no tack ni tick.
Exactamente n repeticiones del carácter o expresión anterior {n} fe{2}d busca feed pero no fed.
Al menos n repeticiones del carácter o expresión anterior {n,} fe{1,}d busca fed y feed.
De n a m repeticiones del carácter o expresión anterior {n,m} 10{1,3} busca 10, 100 y 1000.
Una o más apariciones del carácter o expresión anteriores @ lo@t busca lot y loot.

Caracteres especiales de escape

La búsqueda con caracteres comodín es realmente lo mismo que la búsqueda en una expresión regular. Hay caracteres especiales en expresiones regulares, como '[', ']', '(', ')', '{', '}', '*', '?', '', '<', '>', '!' y '@'. Si uno de estos caracteres forma parte de la cadena literal que está buscando el código, entonces necesita evitarse, de forma que Word sepa que debe tratarse de manera literal y no como parte de la lógica de la expresión regular. Para escapar un carácter en la búsqueda de Word interfaz de usuario, lo precedería con un carácter de barra diagonal inversa ('\'), pero para escaparlo mediante programación, colóquelo entre caracteres '[]'. Por ejemplo, '[*]*' busca cualquier cadena que comience con un '*' seguido de cualquier número de otros caracteres.

Ejemplos

Los ejemplos siguientes muestran los escenarios comunes.

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

Búsqueda basada en un prefijo

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

Búsqueda basada en un sufijo

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

Búsqueda con caracteres comodín

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

Buscar un carácter especial

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

Búsqueda con un carácter comodín para un carácter especial con escape

Como se indicó anteriormente en Caracteres especiales escape, las expresiones regulares usan caracteres especiales. Para que una búsqueda con caracteres comodín encuentre uno de esos caracteres especiales mediante programación, tendrá que tener escape mediante '[' y ']'. En este ejemplo se muestra cómo buscar el carácter especial '{' mediante una búsqueda con caracteres comodín.

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

Pruebe ejemplos de código en Script Lab

Obtenga el complemento Script Lab y pruebe los ejemplos de código que se proporcionan en este artículo. Para más información sobre Script Lab, consulte Explorar las API de JavaScript de Office con Script Lab.

Consulte también

Puede encontrar más información en lo siguiente: