将正则表达式更改为目标图像链接

时间:2014-04-09 03:30:26

标签: regex

我需要批量更改一个文件夹,将所有图像链接更改为小写,并用短划线替换下划线。因此,<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上。)

1 个答案:

答案 0 :(得分:1)

输入如下:

<img id="BoringSnowDay" class="FunkySmellsFromGarden" src="/images/Maps/South_America.png" alt="Powerball Winner!" /> <img id="ExcitingSunNight" class="SmoothTasteInKitchen" src="/images/Flags/Antartica.jpg" alt="Racecar racecaR!" />

TextWrangler中的这个正则表达式:

(<img [^>]+)(src="[^"]+")

替换:

\1\L\2

给我的东西只会影响src="..."部分,而不会影响其他任何内容。

不幸的是,将其与&#34; ...相结合,并将_替换为-&#34;往往会有点棘手。