Многострочное регулярное выражение в PowerShell
У меня есть сценарий PowerShell, основной целью которого является поиск файлов HTML в папке, поиск конкретной разметки HTML и замена на то, что я говорю.
Я смог сделать 3/4 моей находки и отлично заменил. Тот, с которым у меня проблемы, включает в себя регулярное выражение.
Это разметка, которую я пытаюсь найти и заменить своим регулярным выражением:
<a href="programsactivities_skating.html"><br />
</a>
Вот регулярное выражение, которое у меня есть, вместе с функцией, в которой я его использую:
automate -school "C:\Users\$env:username\Desktop\schools\$question" -query '(?mis)(?!exclude1|exclude2|exclude3)(<a[^>]*?>(\s| |<br\s?/?>)*</a>)' -replace ''
А вот и функция автоматизации:
function automate($school, $query, $replace) {
$processFiles = Get-ChildItem -Exclude *.bak -Include "*.html", "*.HTML", "*.htm", "*.HTM" -Recurse -Path $school
foreach ($file in $processFiles) {
$text = Get-Content $file
$text = $text -replace $query, $replace
$text | Out-File $file -Force -Encoding utf8
}
}
Я пытался найти решение этой проблемы уже около 2 дней, и просто не могу заставить его работать. Я решил, что проблема заключается в том, что я должен указать своему регулярному выражению учетную запись Multiline, и с этим у меня проблемы.
Любая помощь, которую кто-либо может оказать, очень ценится.
Заранее спасибо.