Задать вопрос
@AceLightning
I fell in programming.

Как заменить подстроку на значение из Dictionary?

Суть такова: нужно заменить все вхождения вида @some_text на значение из словаря

Есть такой скрипт:
[string]$str = "-Password '@Password' -Branches '@BranchList'"

[System.Collections.Specialized.OrderedDictionary]$ValuesForParameters = @{}
$ValuesForParameters.Add("BranchList", "Replaced BranchList")
$ValuesForParameters.Add("Password", "Replaced Password")

$regularExpression = "(?<='@)(.*?)(?=')"
[string]$result = $str -replace $regularExpression, $ValuesForParameters['$1']
$ValuesForParameters.Keys
Write-Host $result


Но результат выводит:
-Password '@' -Branches '@'

Как я понимаю, он не воспринимает '$1' как переменную, а воспринимает ее как строку, если я добавлю в словарь значение с ключом '$1', то он заменит все на значение соответствующее этому ключу.

Не могли бы вы подсказать как это можно реализовать?
  • Вопрос задан
  • 53 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
ApeCoder
@ApeCoder
https://stackoverflow.com/questions/10995667/lambd...

Можно использовать параметр-, делегат из regex.replace
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы