PS PowerShell  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Строки и регулярные выражения

Строки и регулярные выражения: практический тест по PowerShell с чтением кода, поиском причины ошибки и выбором надёжного решения. Темы: Интерполяция, Многострочные строки Here-string, Регулярные выражения с -match, Замена. Базовая линия — PowerShell 7.6.3; Windows-зависимые команды и отличия Windows PowerShell 5.1 отмечены в условиях.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант; близкие ответы различаются механизмом, порядком выполнения, областью действия или эксплуатационной границей. После завершения вы увидите общий результат, результаты по 4 тематическим шкалам и подробные объяснения.
Вопрос 1 из 20
В двойной строке требуется вывести свойство объекта. Какое объяснение не зависит от случайностей окружения?
PowerShellВ двойной строке требуется вывести свойство объекта
$u=[pscustomobject]@{Name="Ada"}
"User: $($u.Name)"
Вопрос 2 из 20
В одинарной строке присутствует $HOME. Какой принцип PowerShell здесь работает?
PowerShellВ одинарной строке присутствует $HOME
$result = '$HOME`n'
$shape = if($null -eq $result){'<null>'}elseif($result -is [array]){'array'}else{$result.GetType().Name}
[pscustomobject]@{ Shape=$shape; Values=@($result) }
Вопрос 3 из 20
После имени переменной сразу идёт двоеточие. Что точнее всего описывает поведение?
PowerShellПосле имени переменной сразу идёт двоеточие
$name="disk"
"${name}: ready"
Вопрос 4 из 20
Строка команды собирается конкатенацией пользовательских данных. Какой подход выдержит повторный запуск?
Вопрос 5 из 20
Как вывести число с культурно-независимым форматом?
Вопрос 6 из 20
Завершающий маркер here-string имеет пробелы перед @". Какой принцип PowerShell здесь работает?
PowerShellЗавершающий маркер here-string имеет пробелы перед @"
@"
line 1
line 2
"@
Вопрос 7 из 20
В двойном here-string находится $name. Что точнее всего описывает поведение?
PowerShellВ двойном here-string находится $name
$name="Ada"
@"
Hello $name
"@
Вопрос 8 из 20
Как определить, входит ли первый перевод строки в значение here-string?
PowerShellНужно определить, входит ли первый перевод строки в значение here-string
$s=@"
alpha
beta
"@
$s.Length
Вопрос 9 из 20
В here-string хранится JSON с фигурными скобками. Как следует читать этот фрагмент?
Вопрос 10 из 20
Многострочный шаблон содержит секрет и затем попадает в журнал. Что следует сделать до запуска в автоматизации?
Вопрос 11 из 20
Оператор -match применяется к одной строке и захватывающей группе. Какой результат нужно ожидать?
PowerShellОператор -match применяется к одной строке и захватывающей группе
$result = & { if("id=42" -match "id=(?<id>\d+)"){$Matches.id} }
$resultType = if($null -eq $result){'<null>'}else{$result.GetType().FullName}
[pscustomobject]@{ Result=$result; Type=$resultType; Count=@($result).Count }
Вопрос 12 из 20
Оператор -match применяется к массиву строк. Какой результат увидит вызывающий код?
PowerShellОператор -match применяется к массиву строк
$result = "a1","b","c3" -match "\d"
$items = @($result)
[pscustomobject]@{ Count=$items.Count; First=$items | Select-Object -First 1; IsNull=($null -eq $result) }
Вопрос 13 из 20
После успешного -match выполняется неуспешный и читается $Matches. Какой подход выдержит повторный запуск?
Вопрос 14 из 20
Как буквальное совпадение пользовательской строки в регулярном выражении?
Вопрос 15 из 20
Регулярное выражение запускается на очень больших недоверенных строках. Какой вывод был бы слишком сильным?
Вопрос 16 из 20
Оператор -replace использует группы регулярного выражения в строке замены. Какое объяснение точнее?
PowerShellОператор -replace использует группы регулярного выражения в строке замены
$result = "Ada Lovelace" -replace "(\w+) (\w+)",'$2, $1'
$shape = if($null -eq $result){'<null>'}elseif($result -is [array]){'array'}else{$result.GetType().Name}
[pscustomobject]@{ Shape=$shape; Values=@($result) }
Вопрос 17 из 20
Как заменить буквальную точку?
PowerShellНужно заменить буквальную точку
$result = "v1.2" -replace "\.","-"
$resultType = if($null -eq $result){'<null>'}else{$result.GetType().FullName}
[pscustomobject]@{ Result=$result; Type=$resultType; Count=@($result).Count }
Вопрос 18 из 20
Regex.Replace получает MatchEvaluator. Какое объяснение не зависит от случайностей окружения?
Вопрос 19 из 20
Как выполнить простую буквальную замену без regex?
Вопрос 20 из 20
Замена должна сохранить исходную строку. Какой вариант точнее выражает контракт?

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу