メソッドにデリゲートを渡すためにラムダ式を使用する 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 でデリゲートを受け取るメソッドにラムダ式を渡す方法を知りたいだけです。