Задать вопрос
@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', то он заменит все на значение соответствующее этому ключу.

Не могли бы вы подсказать как это можно реализовать?
  • Вопрос задан
  • 55 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Системный администратор с нуля
    6 месяцев
    Далее
  • Stepik
    PowerShell для начинающих: Основы для IT-специалистов
    1 неделя
    Далее
  • Skillbox
    Профессия Специалист по информационной безопасности
    12 месяцев
    Далее
Решения вопроса 1
ApeCoder
@ApeCoder
https://stackoverflow.com/questions/10995667/lambd...

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

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

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