Лямбда-выражение в Powershell

У меня есть код на C#, который использует лямбда-выражения для передачи делегата методу. Как я могу добиться этого в PowerShell. Например, следующий код C#:

string input = "(,)(;)(:)(!)";
string pattern = @"\((?<val>[\,\!\;\:])\)";
var r = new Regex(pattern);
string result = r.Replace(input, m =>
    {
        if (m.Groups["val"].Value == ";") return "[1]";
        else return "[0]";
    });
Console.WriteLine(result);

А это сценарий PowerShell без лямбда-выражения:

$input = "(,)(;)(:)(!)";
$pattern = "\((?<val>[\,\!\;\:])\)";
$r = New-Object System.Text.RegularExpressions.Regex $pattern
$result = $r.Replace($input, "WHAT HERE?")
Write-Host $result

Примечание:мой вопрос не о решении этой проблемы с регулярным выражением. Я просто хочу знать, как передать лямбда-выражение методу, который получает делегаты в PowerShell.

39
задан Sina Iravanian 12 June 2012 в 11:24
поделиться