我在 C# 中有一个代码,它使用 lambda 表达式将委托传递给一个方法。如何在 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);
这是没有 lambda 表达式的 PowerShell 脚本:
$input = "(,)(;)(:)(!)";
$pattern = "\((?<val>[\,\!\;\:])\)";
$r = New-Object System.Text.RegularExpressions.Regex $pattern
$result = $r.Replace($input, "WHAT HERE?")
Write-Host $result
注意:我的问题不是解决这个正则表达式问题。我只想知道如何将 lambda 表达式传递给在 PowerShell 中接收委托的方法。