我目前有成千上万的.html& .htm文件在页面顶部都有一致的横幅。某些属性可能位于标记内的不同位置,但它们都以img src =开头。我想在所有这些文件中找到包含在img标记内的横幅,找到结束'>'
,然后在其后面追加另一个图像。
所以我想找到
<img src="images/banner.jpg".*>$
并在其后立即追加
<img src="images/new-banner.jpg>
以便它看起来像
<img src="images/banner.jpg width="x" height="x">
<img src="images/new-banner.jpg">
我知道,“正则表达式不能用于解析HTML”,如here所述。但实际上,我认为它应该说正则表达式不应该用于解析HTML,因为在这种情况下,不能使用强大的单词并且不是真实的。
如果您有关于如何在没有正则表达式的情况下获得相同结果的建议,我很乐意尝试其他替代方案。我是在结果之后,并没有关闭建议的方法。
我现在拥有的是这个
Select-String -Pattern '<img src="images/banner.jpg".*>$' *.htm -AllMatches | % { $_.Matches } | % { $_.Value }
这让我半途而废。它完整地返回找到的匹配,但是,我不知道如何继续,以便我可以在结束后立即附加我想要的字符串>
谢谢大家的时间和想法:)。
答案 0 :(得分:1)
这是一种方法......
打开支持regex Find&amp; amp;替换多个文件。我将使用免费Visual Studio Code执行以下步骤:
文件&gt;打开... 并选择包含所有文件的根文件夹(如果它们被隐藏在子文件夹中,那很好)。
修改&gt;替换文件,然后点击使用正则表达式切换(其上带有.*
的图标)。
将其插入“查找”框:.*
将其插入替换框:src="images/banner\.jpg"(.*?)>
预览更改并点击全部替换,如果您已准备就绪!
希望这有帮助。