【发布时间】:2014-03-21 14:26:42
【问题描述】:
我有这个 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 天了,但似乎无法让它发挥作用。我已经确定问题是我需要告诉我的正则表达式来解释多行,这就是我遇到的问题。
非常感谢任何人提供的任何帮助。
提前致谢。
【问题讨论】:
标签: regex powershell