#string #powershell
#строка #powershell
Вопрос:
"-Project:Abcdefg -Version: 1.2.3 -Channel: Some Random Text -Parametre: Some Random Text Again"
Я хочу извлечь только "Version: 1.2.3"
из приведенной выше строки.
Не могли бы вы, пожалуйста, предложить какой-нибудь простой метод для такого извлечения строки?
Комментарии:
1. [1] пожалуйста, добавьте маркеры форматирования вокруг ваших образцов данных, чтобы они были легко читаемы и были четко расположены. [2] что вы пробовали? что не сработало? [3] пожалуйста, совершите экскурсию по этому сайту, прежде чем ваш вопрос будет удален из-за несоблюдения правил.
Ответ №1:
В качестве альтернативы вы также могли бы использовать регулярное выражение -replace
для этого, как в
$str = "-Project:Abcdefg -Version: 145.126.110 -Channel: Some Random Text -Parametre: Some Random Text Again"
$str -replace '.*(Version:s*[d.] ).*', '$1'
Вывод:
Version: 145.126.110
Комментарии:
1. Огромное тебе спасибо, Тео. Решение сработало идеально. Не могли бы вы, пожалуйста, предложить какие-нибудь бесплатные онлайн-источники для получения более подробных знаний о powershell или какие-нибудь книги, к которым можно обратиться для изучения Powershell?
2. @AkshayChouksey В Интернете можно найти множество бесплатных учебных материалов. Например, [1] Изучение PowerShell , [2] Начало работы с Microsoft PowerShell ,
3. @AkshayChouksey [3] Windows PowerShell Шаг за шагом , [4] Изучение PowerShell и многое другое .. и, конечно, этот сайт
Ответ №2:
Здесь просто предположение, потому что, как сказал Ли, этот вопрос сформулирован плохо, но я думаю, вы имеете в виду извлечь «Версию: 1.2.3» из полной строки.
Вы можете использовать Select-String
.
$str = "-Project:Abcdefg -Version: 1.2.3 -Channel: Some Random Text -Parametre: Some Random Text Again"
Select-String -InputObject $str -SimpleMatch "Version: 1.2.3"
Если это динамическое значение, вам понадобится регулярное выражение.
$str = "-Project:Abcdefg -Version: 1.2.3 -Channel: Some Random Text -Parametre: Some Random Text Again"
([regex]::matches($str, "Version: d .d .d ", "IgnoreCase")).Value
Комментарии:
1. Спасибо Эндрю за предоставленное вами решение. Да, строка будет динамической, а также версия может содержать несколько цифр, например. 12.13.158 или 145.126.110 или 1.2.30. Я просто хочу избежать жестко закодированных решений.
2. Я обновил, чтобы соответствовать тому, что вам нужно. Символ d будет соответствовать любой цифре любое количество раз.
3. Спасибо Эндрю Дэвису. Решение, которое вы предоставили, сработало для меня.