Powershell vervangen door een opzoekvariabele

Ik heb dit in powershell geprobeerd met -replace en met [RegEx] :: replace. zelfde probleem. Ik wil de waarde in een vastleggingsgroep gebruiken om de waarde ervan op te halen uit een opzoeking van de vervanging van een tekenreeks.

aannemende dat t een geldige hash-tabel is van sleutel/waarde waarbij één sleutel 'gif' is.

[RegEx]::Replace($_, "((/aaa)?/bbb[^']+).(jpg|png|bmp|gif)", "--`$1--`$2--`$3--$($t.Item('`$3'))++++`$1-UUUUU.`$3")

Onnodig te zeggen dat ik er niet in geslaagd ben om de hash-lookup in deze vervanging te laten werken.

1
Waar heb je het over? Geef een voorbeeld en code die u daadwerkelijk hebt gebruikt.
toegevoegd de auteur manojlds, de bron
OK, code was niet correct geformatteerd en verdwenen. Maar geef toch een voorbeeld wat je wilt. Vraag is erg vaag.
toegevoegd de auteur manojlds, de bron
toegevoegd de auteur Emperor XLII, de bron

1 antwoord

Als ik het goed begrijp, kun je een MatchEvaluator gebruiken zoals:

$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)
3
toegevoegd