Вы можете сделать что-то вроде следующего с -replace
.Просто замените значение, присвоенное $number
, на любое значение, которое вы считаете подходящим.Тем не менее, правильный синтаксический анализатор для языка в файле будет лучшим.
$regex = [regex]'(?<=type=")[^"]+(?=" name="krok-\d{4}-\d{2}-\d{2}")'
$number = 24
(Get-Content index.html) -replace $regex,$number | Set-Content index.html
Объяснение:
Поскольку -replace
использует сопоставление с регулярным выражением, мы можем построить вашу текущую идею.См. Следующее для разбивки $regex
.Цель состоит в том, чтобы сопоставить все символы в двойных кавычках после type=
и до name="krok-####-##-##"
.
(?<=)
: положительный взгляд за спиной type="
: соответствует типу символов= "буквально [^"]+
: соответствует одному символу, который не "
один или несколько раз (+
). - ` (? =): положительный взгляд вперед
" name="krok-\d{4}-\d{2}-\d{2}"
: соответствует буквально "krok-
, за которыми следуют 4 цифры, литерал -
, 2 цифры, литерал -
, 2 цифры и финальная "
.
Символы, соответствующие $regex
, заменяются на $number
.
См., Например, Regex Demo и более подробное объяснение.