Действия с регулярными выражениями
Данный раздел относится к версии Windows Workflow Foundation 4.
Этот образец демонстрирует способ создания набора действий, которые представляют функциональные возможности регулярного выражения пространства имен System.Text.RegularExpressions. Эти пользовательские действия можно использовать в приложении рабочего процесса. Регулярные выражения Дополнительные сведения описаны в пространстве имен N:System.Text.RegularExpressions.
В следующей таблице приведены сведения о пользовательских действиях, выполняемых в данном образце.
Действие | Описание |
---|---|
IsMatch |
Указывает, были ли найдены совпадения во входной строке в результате выполнения регулярного выражения. |
Matches |
Выполняет поиск всех вхождений регулярного выражения во входной строке и возвращает все найденные совпадения. |
Replace |
Заменяет в указанной входной строке все строки, совпадающие с шаблоном регулярного выражения, на указанную строку замены. |
IsMatch
Пользовательское действие IsMatch
возвращает true, если свойство строки Input
совпадает с регулярным выражением, указанным в свойстве Pattern
. Действие является производным от CodeActivity, и в методе Execute вызывается метод IsMatch.
В следующей таблице описываются свойства и возвращаемое значение для настраиваемого действия IsMatch
.
Свойство или возвращаемое значение | Описание |
---|---|
Шаблон (обязательно) |
Регулярное выражение, по которому выполняется поиск. |
Входные данные (обязательно) |
Входная строка для поиска. |
RegexOptions |
Значения перечисления RegexOptions, объединенные битовой операцией ИЛИ. |
Возвращаемое значение |
true, если входная строка совпадает с указанным шаблоном. В противном случае false. |
В следующем примере кода показано использование настраиваемого действия IsMatch
.
new IsMatch
{
Pattern = new InArgument<string>( @"^-?\d+(\.\d{2})?$"),
Input = "20.00",
};
Соответствия
Пользовательское действие Matches
выполняет поиск всех вхождений регулярного выражения во входной строке и возвращает все найденные совпадения. Действие является производным от CodeActivity, и в методе Execute вызывается метод Matches.
В следующей таблице описываются свойства и возвращаемое значение для настраиваемого действия IsMatch
.
Свойство или возвращаемое значение | Описание |
---|---|
Шаблон (обязательно) |
Регулярное выражение, по которому выполняется поиск. |
Входные данные (обязательно) |
Входная строка для поиска. |
RegexOptions |
Значения перечисления RegexOptions, объединенные битовой операцией ИЛИ. |
Возвращаемое значение |
Объект MatchCollection, содержащий коллекцию успешных совпадений. |
В следующем примере кода показано использование настраиваемого действия 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
выполняет поиск во входной строке и заменяет в этой строке все строки, совпадающие с указанным регулярным выражением. Действие является производным от CodeActivity, и в методе Execute вызывается метод Replace.
В следующей таблице описываются свойства и возвращаемое значение для настраиваемого действия Replace
.
Свойство или возвращаемое значение | Описание |
---|---|
Шаблон (обязательно) |
Регулярное выражение, по которому выполняется поиск. |
Входные данные (обязательно) |
Входная строка для поиска. |
Замена |
Строка замены. Если задано свойство |
MatchEvaluator |
Пользовательский метод, анализирующий каждое совпадение и возвращающий либо исходную строку с совпадениями, либо строку замены. Если задано свойство |
RegexOptions |
Значения перечисления RegexOptions, объединенные битовой операцией ИЛИ. |
Возвращаемое значение |
Объект MatchCollection, содержащий коллекцию успешных совпадений. |
В следующем примере кода показано использование настраиваемого действия 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)
};
Использование этого образца
Откройте файл решения RegexActivities.sln в среде Visual Studio 2010.
Чтобы построить решение, нажмите клавишу F6.
Чтобы запустить решение, нажмите клавиши CTRL+F5.
Примечание |
---|
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).
<диск_установки>:\WF_WCF_Samples
Если этот каталог не существует, перейдите на страницу Образцы Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) для .NET Framework 4, чтобы загрузить все образцы Windows Communication Foundation (WCF) и WF. Этот образец расположен в следующем каталоге.
<диск_установки>:\WF_WCF_Samples\WF\Scenario\ActivityLibrary\Regex
|