FindReplaceOptions

FindReplaceOptions()

Inicializa una nueva instancia de la clase FindReplaceOptions con la configuración predeterminada.

public FindReplaceOptions()

Ejemplos

Muestra cómo reconocer y utilizar sustituciones dentro de patrones de reemplazo.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

builder.Write("Jason gave money to Paul.");

Regex regex = new Regex(@"([A-z]+) gave money to ([A-z]+)");

FindReplaceOptions options = new FindReplaceOptions();
options.UseSubstitutions = true;

// El uso del modo heredado no admite muchas funciones avanzadas, por lo que debemos configurarlo como 'falso'.
options.LegacyMode = false;

doc.Range.Replace(regex, @"$2 took money from $1", options);

Assert.AreEqual(doc.GetText(), "Paul took money from Jason.\f");

Ver también


FindReplaceOptions(FindReplaceDirection)

Inicializa una nueva instancia de la clase FindReplaceOptions con la dirección especificada.

public FindReplaceOptions(FindReplaceDirection direction)
ParámetroEscribeDescripción
directionFindReplaceDirectionLa dirección de la operación de buscar y reemplazar.

Ver también


FindReplaceOptions(IReplacingCallback)

Inicializa una nueva instancia de la clase FindReplaceOptions con la devolución de llamada de reemplazo especificada.

public FindReplaceOptions(IReplacingCallback replacingCallback)
ParámetroEscribeDescripción
replacingCallbackIReplacingCallbackLa devolución de llamada que se utilizará para reemplazar el texto encontrado.

Ejemplos

Muestra cómo rastrear el orden en que una operación de reemplazo de texto recorre los nodos.

public void Order(bool differentFirstPageHeaderFooter)
{
    Document doc = new Document(MyDir + "Header and footer types.docx");

    Section firstPageSection = doc.FirstSection;

    ReplaceLog logger = new ReplaceLog();
    FindReplaceOptions options = new FindReplaceOptions(logger);

    // El uso de un encabezado/pie de página diferente para la primera página afectará el orden de búsqueda.
    firstPageSection.PageSetup.DifferentFirstPageHeaderFooter = differentFirstPageHeaderFooter;
    doc.Range.Replace(new Regex("(header|footer)"), "", options);

    if (differentFirstPageHeaderFooter)
        Assert.AreEqual("First header\nFirst footer\nSecond header\nSecond footer\nThird header\nThird footer\n", 
            logger.Text.Replace("\r", ""));
    else
        Assert.AreEqual("Third header\nFirst header\nThird footer\nFirst footer\nSecond header\nSecond footer\n", 
            logger.Text.Replace("\r", ""));
}

/// <summary>
/// Durante una operación de búsqueda y reemplazo, registra el contenido de cada nodo que tenga texto que la operación "encuentra".
/// en el estado en que se encontraba antes de que se realizara el reemplazo.
/// Esto mostrará el orden en que la operación de reemplazo de texto recorre los nodos.
/// </summary>
private class ReplaceLog : IReplacingCallback
{
    public ReplaceAction Replacing(ReplacingArgs args)
    {
        mTextBuilder.AppendLine(args.MatchNode.GetText());
        return ReplaceAction.Skip;
    }

    internal string Text => mTextBuilder.ToString();

    private readonly StringBuilder mTextBuilder = new StringBuilder();
}

Ver también


FindReplaceOptions(FindReplaceDirectionIReplacingCallback)

Inicializa una nueva instancia de la clase FindReplaceOptions con la dirección especificada y la devolución de llamada de reemplazo.

public FindReplaceOptions(FindReplaceDirection direction, IReplacingCallback replacingCallback)
ParámetroEscribeDescripción
directionFindReplaceDirectionLa dirección de la operación de buscar y reemplazar.
replacingCallbackIReplacingCallbackLa devolución de llamada que se utilizará para reemplazar el texto encontrado.

Ver también