Compartir a través de


Actividades de expresión normales

Este tema es aplicable a Windows Workflow Foundation 4.

En este ejemplo se muestra cómo crear un conjunto de actividades que exponen la funcionalidad de expresión regular del espacio de nombres System.Text.RegularExpressions. Estas actividades personalizadas se pueden utilizar dentro de una aplicación de flujo de trabajo. Para obtener más información sobre las expresiones regulares, vea N:System.Text.RegularExpressions (Espacio de nombres).

En la siguiente tabla se detallan las actividades personalizadas de este ejemplo.

Actividad Descripción

IsMatch

Especifica si la expresión regular encontró una coincidencia en la cadena de entrada.

Matches

Busca todas las apariciones de una expresión regular en una cadena de entrada y devuelve todas las coincidencias correctas.

Replace

Dentro de una cadena de entrada especificada, reemplaza cadenas que hacen coincidir un modelo de expresión regular con una cadena de reemplazo especificada.

IsMatch

La actividad personalizada IsMatch devuelve true si la propiedad de cadena Input encuentra una coincidencia en la expresión regular especificada en la propiedad Pattern. La actividad se deriva de CodeActivity y dentro del método Execute llama al método IsMatch.

En la siguiente tabla se describen las propiedades y el valor devuelto para la actividad personalizada IsMatch.

Propiedad o valor devuelto Descripción

Pattern (necesario)

La expresión regular con la que buscar.

Input (necesario)

La cadena de entrada que se va a buscar.

RegexOptions

Bit a bit O combinación de valores de enumeración RegexOptions.

Valor devuelto

true si la entrada encuentra una coincidencia en el modelo proporcionado; de lo contrario, false.

En el siguiente ejemplo de código se muestra cómo utilizar la actividad personalizada IsMatch.

new IsMatch
{
    Pattern = new InArgument<string>( @"^-?\d+(\.\d{2})?$"),
    Input = "20.00",
};

Matches

La actividad personalizada Matches busca todas las apariciones de una expresión regular en una cadena de entrada y devuelve todas las coincidencias correctas. La actividad se deriva de CodeActivity y dentro del método Execute llama al método Matches.

En la siguiente tabla se describen las propiedades y el valor devuelto para la actividad personalizada IsMatch.

Propiedad o valor devuelto Descripción

Pattern (necesario)

La expresión regular con la que buscar.

Input (necesario)

La cadena de entrada que se va a buscar.

RegexOptions

Bit a bit O combinación de valores de enumeración RegexOptions.

Valor devuelto

Un objeto MatchCollection que contiene la colección de coincidencias correctas.

En el siguiente ejemplo de código se muestra cómo utilizar la actividad personalizada Matches.

new Matches
{
    Pattern = @"\b(?<word>\w+)\s+(\k<word>)\b",
    Input = "The quick brown fox  fox jumped over over the lazy dog dog.",
};

Replace

La actividad personalizada Replace busca una cadena de entrada y reemplaza todas las cadenas que hacen coincidir una expresión regular especificada con una cadena. La actividad se deriva de CodeActivity y dentro del método Execute llama al método Replace.

En la siguiente tabla se describen las propiedades y el valor devuelto para la actividad personalizada Replace.

Propiedad o valor devuelto Descripción

Pattern (necesario)

La expresión regular con la que buscar.

Input (necesario)

La cadena de entrada que se va a buscar.

Replacement

La cadena de reemplazo.

Si se establece Replacement, se omite la propiedad MatchEvaluator. Es necesario establecer la propiedad Replacement o MatchEvaluator.

MatchEvaluator

Un método personalizado que examina cada coincidencia y devuelve la cadena coincidente original o una cadena de reemplazo.

Si se establece Replacement, se omite la propiedad MatchEvaluator. Es necesario establecer la propiedad Replacement o MatchEvaluator.

RegexOptions

Bit a bit O combinación de valores de enumeración RegexOptions.

Valor devuelto

Un objeto MatchCollection que contiene la colección de coincidencias correctas.

En el siguiente ejemplo de código se muestra cómo utilizar la actividad personalizada Replace.

// Using the replacement string.
new Replace
{
    Pattern = @"\bWorld\b",
    Input = "Hello World! This is a wonderful World",
    Replacement = "Universe"
};

// Using a match evaluator.
new Replace
{
    Pattern = new InArgument<string>(pattern),
    Input = new InArgument<string>(input),
    MatchEvaluator = new MatchEvaluator(CapText)                
};

Para utilizar este ejemplo

  1. Abra el archivo de solución RegexActivities.sln con Visual Studio 2010.

  2. Presione F6 para compilar la solución.

  3. Presione CTRL+F5 para ejecutar la solución.

Dd797587.Important(es-es,VS.100).gif Nota:
Puede que los ejemplos ya estén instalados en su equipo. Compruebe el siguiente directorio (valor predeterminado) antes de continuar.

<InstallDrive>: \WF_WCF_Samples

Si no existe este directorio, vaya a la página de ejemplos de Windows Communication Foundation (WCF) y Windows Workflow Foundation (WF) Samples para .NET Framework 4 para descargar todos los ejemplos de Windows Communication Foundation (WCF) y WF. Este ejemplo se encuentra en el siguiente directorio.

<InstallDrive>:\WF_WCF_Samples\WF\Scenario\ActivityLibrary\Regex