Эквивалент PowerShell вашего кода Python будет выглядеть примерно так:
$inputstring = 'iqn.2007-11.com.storage:srmgrsmisvstvol2-ju7wjffssldf-df-sdf-ewr-v0dd04708bb13b686.000'
if ($inputstring -match '(\w*-){4}(\w*)') {
$matches[0]
}
Оператор -match
(который по умолчанию не учитывает регистр) используется для проверкистрока против регулярного выражения.Если совпадения найдены, то с этими совпадениями заполняется автоматическая переменная $matches
.Затем к совпадениям можно получить доступ по индексу: 0 дает полное совпадение, 1 - первую захваченную группу, 2 - вторую захваченную группу и т. Д.
В дополнение к (неявно нечувствительному к регистру) базовой версии (-match
) Операторы сравнения PowerShell обычно имеют явные версии с учетом регистра и без учета регистра (-cmatch
, -imatch
).
$inputstring -match '(\w*-){4}(\w*)' # case-insensitive
$inputstring -imatch '(\w*-){4}(\w*)' # case-insensitive
$inputstring -cmatch '(\w*-){4}(\w*)' # case-sensitive
Вы также можете включить или отключить чувствительность к регистру с помощью так называемого различные конструкции внутри регулярного выражения, которые имеют приоритет над чувствительностью оператора к регистру:
$inputstring -imatch '(?-i)(\w*-){4}(\w*)' # case-sensitive
$inputstring -cmatch '(?i)(\w*-){4}(\w*)' # case-insensitive