gpt4 book ai didi

html - 如何在 Perl 或 Ruby 中替换和乘以 img 标签的维度?

转载 作者:数据小太阳 更新时间:2023-10-29 08:52:18 24 4
gpt4 key购买 nike

我有一个文件夹,里面装满了为 Kindle 电子书创建的 html 文件。根据 Kindle 指南,图像使用宽度和高度进行编码:

<img width="328" height="234" src="images/224p_fmt.jpeg" alt="224p.tif"/>

我需要创建/查找的是一个脚本,它将处理所有图像标签,将宽度和高度属性乘以指定的数量(编码到脚本中)并将它们写回 html 文件。

所以,对于上面的例子,假设我想乘以 1.5,最后得到

<img width="492" height="351" src="images/224p_fmt.jpeg" alt="224p.tif"/>

像这样的脚本不是我的强项,所以感谢帮助。我尤其不清楚如何编写可以从命令行在文件上运行并仅输入/输出 html 的脚本。

我假设代码的内容是这样的

s/<img width="([0-9]+)" height="([0-9]+)" src="(.*?)" alt=".*"/>/'<img width="'.$1*1.5.'" height="'.$2*1.5.'" src="'.$3.'" alt=""/>'/eg;

我意识到这是不正确的(乘法部分),这就是帮助赞赏的原因。

最佳答案

您已经弄清楚了主要的正则表达式,只需要对其进行调整并确定一种语言。在 html 上使用正则表达式并不是最佳选择,但由于这有点简单,所以可能没问题。

perl -pi.bak -we 's/<img width="([0-9]+)" height="([0-9]+)"/q(<img width=") . 
$1*1.5 . q(" height=") . $2*1.5 . q(")/eg;' yourfile.html

请注意备用引号 q(...) 的使用,因为在命令行中使用单引号会与 shell 引号冲突。

除非您觉得有必要进行更严格的匹配,否则无需更改您未更改的任何部分。如果这样做,您可以添加一个前瞻断言:

(?=\s*src=".*?"\s*alt=".*?"\/>)

这部分将通过替换保持不变。

关于html - 如何在 Perl 或 Ruby 中替换和乘以 img 标签的维度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9839262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com