html - 在文件目录中搜索匹配字符串,找到时将指定文本附加到末尾
问题描述
我目前有数千个 .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”,如此处所述。但实际上,我认为应该说不应该使用正则表达式来解析 HTML,因为 can't 是一个强大的词,在这种情况下并不真实。
如果您建议我如何在不使用正则表达式的情况下获得相同的结果,我很乐意尝试其他替代方案。我追求结果,我不会拒绝建议的到达那里的方法。
我目前拥有的是这个,
Select-String -Pattern '<img src="images/banner.jpg".*>$' *.htm -AllMatches | % { $_.Matches } | % { $_.Value }
这让我走到了一半。它完整地返回找到的匹配项,但是,我不确定如何继续,以便我可以在结束后立即附加我想要的字符串>
谢谢大家的时间和想法:)。
解决方案
这是一种方法...
打开您选择的支持跨多个文件的正则表达式查找和替换的 IDE。我将使用免费的Visual Studio Code执行以下步骤:
File > Open...并选择包含所有文件的根文件夹(如果它们隐藏在子文件夹中,那很好)。
编辑 > 在文件中替换,然后单击使用正则表达式切换(上面的图标
.*
)。将其插入“查找”框中:
src="images/banner\.jpg"(.*?)>
将其插入替换框中:
src="images/banner.jpg"$1>\n<img src="images/new-banner.jpg">
预览更改,如果您准备好了,请单击全部替换!
希望这可以帮助。
推荐阅读
- javascript - JAVASCRIPT - 在数组展平后从子对象内部的父对象数组中获取值
- javascript - 使用 Jquery 将 YouTube 链接从手表更改为动态嵌入
- javascript - 如何在 txt 文件中加载 html 内容以进行电子邮件确认,有什么建议吗?
- django - 如何第二次运行 django 服务器我已经成功安装了 django
- css - CSS样式在mac的Safari浏览器中不起作用
- python - 使用 Python 请求读取 HTML 页面失败
- date - 如果客户端国家/地区从服务器国家/地区更改,newDate() 将如何工作
- postgresql - 表中其他列上每个值的自动增量值
- python - Python:使用 zip() 将列表的超级列表解压缩到单独的列表中
- python - aiohttp.client_exceptions.ClientOSError: [WinError 10054] 现有连接被远程主机强行关闭