Почему этот PowerShell .Replace () не работает? - PullRequest
0 голосов
/ 03 июля 2019

Буду признателен за любую помощь, дающую мне знать, что я делаю неправильно.

Вот эквивалент того, что я делаю. Я хочу, чтобы конечный результат в $ name был просто именем человека "Тодд Уэлч" в этом примере, но вместо этого он заканчивается как "Устройство, которое принадлежит Тодду Уэлчу", поэтому замена не работает.

$name = "A device that belongs to Todd Welch"
$name = $user.Replace(".*device that belongs to ","")
$name = $name.Trim()
Write-host $name

Запись выходов хоста "Устройство, которое принадлежит Тодду Уэлчу"

Ответы [ 2 ]

2 голосов
/ 03 июля 2019

.Replace() из строкового класса и выполняет буквальные замены текста. Поскольку вы используете механизм регулярных выражений .*, вам необходимо переключиться на оператор -replace: текст замены не требуется, если вы просто удаляете текст.

$data = "A device that belongs to Todd Welch"
$name = $data -replace ".*device that belongs to "
$name = $name.Trim()
$name
0 голосов
/ 03 июля 2019

ваша вторая строка должна читать $name = $name.Replace("device that belongs to ","")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...