我在powershell中使用-replace和[RegEx] :: replace尝试了这个。同样的问题。我想使用捕获组中的值来从查找字符串中的替换中检索其值。
假设t是一个有效的键/值哈希表,其中一个键是'gif'。
[RegEx]::Replace($_, "((/aaa)?/bbb[^']+).(jpg|png|bmp|gif)", "--`$1--`$2--`$3--$($t.Item('`$3'))++++`$1-UUUUU.`$3")
毋庸置疑,我一直未能成功地将哈希查找用于此替换。
答案 0 :(得分:3)
如果我理解正确,您可以像这样使用MatchEvaluator:
$evaluator ={
$t = @{ "jpg"="This is a jpeg image";
"gif"="This is a gif image"}
$group1 = $args[0].groups[1]
$t["$group1"]
}
[RegEx]::Replace("test.gif","^.*\.(jpg|gif)", $evaluator,[Text.RegularExpressions.RegexOptions]::none)