Как удалить последнюю часть адреса после косой черты? - PullRequest
1 голос
/ 05 июня 2019

У меня есть простая проблема, которая наставляла меня в течение нескольких часов.Я в основном получаю строки в следующем формате с сервера.все, что мне нужно сделать, это удалить последнюю часть.Так например:

AAA \ BBB \ CCC \ DDD

Результат будет:

AAA \ BBB \ CCC

Другой пример:

AAA \ BBB \ CCC \ DDD \ EEE

Результат будет:

AAA \ BBB \ CCC \ DDD

Вы можете мне помочь?Спасибо.

$host_attr = $host_attr.replace('`n', '')
write-host "host_attr: " $host_attr
$host_attr = $host_attr.ToCharArray()
[Array]::Reverse($host_attr) 
$host_attr = -join $host_attr
$domanNameDump, $host_attr  = $host_attr.split('\\', 3) 
$host_attr = $host_attr.ToCharArray()
[Array]::Reverse($host_attr)
$host_attr = -join $host_attr
write-host "host_attr: " $host_attr

1 Ответ

3 голосов
/ 05 июня 2019

Вы можете использовать -Replace или Split-Path для эффективного удаления символов, начинающихся с конечного \.

Заменить Operator Solution:

$s = "AAA\BBB\CCC\DDD\EEE"
$s -Replace "(.*)\\.*",'$1'

Решение Split-Path:

$s = "AAA\BBB\CCC\DDD\EEE"
Split-Path -Path $s

Объяснение:

Оператор -Replace использует шаблон регулярных выражений для поиска соответствия и заменяетс любым указанным значением.В этом случае мы используем $1, поскольку он представляет группу захвата 1 ((.*)) в регулярном выражении (.*)\\.*..* - жадное совпадение всех персонажей.\ требует экранирования в регулярном выражении, поэтому шаблон содержит \\.Финальный .* просто соответствует оставшимся символам после последнего \, так что они заменяются.Порядок (.*)\\ важен, чтобы жадное совпадение остановилось на последнем найденном символе \.См. Оператор замены для получения дополнительной информации.

Поскольку Split-Path без дополнительных параметров удаляет все, начиная с последнего \, его можно использовать для этого конкретного сценария.См. Split-Path для получения дополнительной информации.

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