PowerShell:
Извлечение подстрок
Как это сделать:
Вот как можно нарезать и расколоть строки в PowerShell:
# Дана строка
$text = "Power up your PowerShell skills!"
# Извлечение с использованием метода substring
$startIndex = 10
$length = 9
$substring = $text.Substring($startIndex, $length)
Write-Host $substring # Вывод: your Powe
# Извлечение с использованием оператора диапазона
$subrange = $text[10..18] -join ''
Write-Host $subrange # Вывод: your Powe
# Извлечение с начала до определенной позиции
$firstPart = $text.Substring(0, $startIndex)
Write-Host $firstPart # Вывод: Power up
# Извлечение после определенного символа
$splitString = $text.Split(" ")[2]
Write-Host $splitString # Вывод: your
Подробнее
Давным-давно PowerShell обладал только основными методами обработки строк. Теперь все иначе. Метод .Substring()
существует уже довольно долго и он достаточно прост в использовании — достаточно указать начальный индекс и, при необходимости, длину, и он вырежет то, что вам нужно. Начиная с PowerShell 6, вы также можете использовать оператор диапазона, который может быть проще, особенно когда вы работаете со строками переменной длины.
Также есть оператор -split
и метод .Split()
, оба удобных для разделения строк на основе шаблонов или символов. Нужен конкретный кусок? Используйте эти инструменты.
С точки зрения производительности, для маленьких задач разница незначительна. Когда вы работаете с огромными текстовыми файлами или выполняете цикл каждую миллисекунду, вам понадобятся бенчмарки. В остальных случаях важнее читаемость и то, что кажется правильным для вашего сценария.
Помните, индексация строк в PowerShell начинается с нуля, что является общим для многих языков программирования. Остерегайтесь хитрого ошибки на единицу.
Смотрите также
Для дополнительной информации о манипуляции со строками в PowerShell:
- About_Split
- About Comparison Operators, которое охватывает -split