PowerShell:
Преобразование строки в нижний регистр
Как сделать:
PowerShell довольно удобен для работы со строками. Используйте метод .ToLower()
, вот так:
$string = "HELLO, World!"
$lowerCaseString = $string.ToLower()
$lowerCaseString
Вывод:
hello, world!
Или попробуйте метод ToLowerInvariant()
, когда культурные нормы не должны влиять на преобразование:
$string = "HELLO, World!"
$lowerCaseInvariant = $string.ToLowerInvariant()
$lowerCaseInvariant
Вывод:
hello, world!
Подробнее
В прошлом нечувствительность к регистру была довольно распространенной в языках программирования. В PowerShell, как и в его предках .NET, строки являются объектами с встроенными методами для манипуляции. Когда мы используем .ToLower()
, мы вызываем метод, который обрабатывает процесс преобразования для нас.
Альтернативные способы решения задачи? Конечно. Вы могли бы использовать:
- цикл
for
, посещая каждый символ и вручную изменяя регистр - регулярные выражения с оператором
-replace
- конвертацию, специфичную для культуры, используя перегрузки метода
.ToLower()
Почему используется инвариантная культура с ToLowerInvariant()
? Это важно для получения последовательных результатов в различных локализациях, где интерпретация того, что считается “нижним” регистром, может различаться.
Смотрите также
Для более подробных приключений по манипуляции со строками, посетите эти ссылки: