【发布时间】:2014-04-09 12:04:01
【问题描述】:
我需要批量更改一个包含文件的文件夹,将所有图像链接更改为小写并用破折号替换下划线。因此,<img src="/images/Maps/South_America.png"> 将变为 <img src="images/maps/south-america.png">
我已经对同一文件中的所有本地链接执行了类似的操作。我使用这个正则表达式将它们更改为小写:
(?<=(?i)href=")((?:<\?php(?:(?!\?>).)+\?>)?)((?:'[^']+')?)([^"]+)(?=")
\1\2\L\3
我用这个来用破折号代替下划线:
(href="(?!http)[^_"]+)\_([^"]+")
$1-$2
我什至不确定它们是否是同一种“语言”;我认为一个只适用于 Dreamweaver,另一个适用于 TextWrangler。无论如何,我还没有想出如何修改以匹配图像,而不是链接。我要强调的是,我只更改图像路径和名称,而不是任何类、ID 或 alt 标签。
例如,<img src="Buffalo_Bill.jpg" alt="Buffalo Bill" class="People"> 将变为 <img src="buffalo-bill.jpg" alt="Buffalo Bill" class="People">
另外,如果需要定义图像扩展,我认为这涵盖了所有基础......
(?:jpe?g|gif|png|svg|swf)
我在上面发布的正则表达式只是示例。如果您有一个完全不同的正则表达式,那很好 - 只要它可以在 Dreamweaver 或 TextWrangler 等通用文本编辑器中工作。 (我在 Mac 上。)
【问题讨论】:
-
您能否修复您的图像或在文本中粘贴“从”到“到”的示例?
-
很抱歉;我想有人为我修好了它们。 ;)
-
所以你正试图让你的第二个匹配/替换文件名的正则表达式只影响图像?
-
是的,我已经将所有链接转换为小写,并用破折号替换了下划线。现在我想对我的图像做同样的事情。
标签: regex