Как выбрать и заполнить строку в форме - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть скрипт powershell, который должен в основном заполнить пустую строку на картинке.Я не могу найти решение о том, как выбрать эту часть и заполнить ее номером.Я пытался найти имя с помощью регулярного выражения, но не удалось здесь, это часть кода

$krokPattern = "https://kazdykrokpomaha.ozp.cz/index.php?kroky/index"
$ie.navigate($krokPattern)

while($ie.Busy) { Start-Sleep -Milliseconds 100 }

[regex]$regex = "krok-\d{4}-\d{2}-\d{2}"
$stering = Select-String -Path $krokPattern -Pattern $regex

Изображение - как это выглядит

1 Ответ

0 голосов
/ 19 сентября 2019

Вы можете сделать что-то вроде следующего с -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 и более подробное объяснение.

...