我有这个PowerShell脚本,其主要目的是搜索文件夹中的HTML文件,找到特定的HTML标记,并替换为我告诉它的内容.
我已经能够完成3/4的发现并完全取代.我遇到麻烦的是涉及正则表达式.
这是我试图让我的正则表达式找到并替换的标记:
<a href="programsactivities_skating.html"><br />
</a>
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的正则表达式,以及我在其中使用的函数:
automate -school "C:\Users\$env:username\Desktop\schools\$question" -query '(?mis)(?!exclude1|exclude2|exclude3)(<a[^>]*?>(\s| |<br\s?/?>)*</a>)' -replace ''
Run Code Online (Sandbox Code Playgroud)
这是自动化功能:
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
}
}
Run Code Online (Sandbox Code Playgroud)
我一直试图找出解决方案大约2天,但似乎无法让它工作.我已经确定问题是我需要告诉我的正则表达式考虑Multiline,这就是我遇到的麻烦.
任何人都可以提供的帮助非常感谢.
提前致谢.