正则表达式 - Magento Magmi导入:如何正确重命名图像文件?

时间:2013-08-20 12:43:45

标签: regex magento-1.7 magmi

Magmi是某些电子商务软件的导入工具。

我正在尝试导入图片。问题是我的图像都被命名​​为“SKU.jpg”,并且位于不同的目录中。

Magmi有一个使用正则表达式来解决这个问题的工具。

我的问题是提出正确的正则表达式来使这项工作。

注意:我已经使用手动重命名的文件测试了我的导入,并且它运行良好。

Magmi说如果你在不同的目录中有类似的图像名称:

thumbs/01.png
standard/01.png

然后使用这个正则表达式:

re::(.*)/(.*)\.(.*)$::$2_$1.$3

文件将重命名为:

01_thumbs.png
01_standard.png

现在,我的文件结构如下:

/images/Headshot/Rectangle/VT08.jpg
/images/FloorShot/Rectangle/VT08.jpg

我假设这个正则表达式会起作用:

re::/(.*)/(.*)/(.*)/(.*)\.(.*)$::$2_$4.$5

更改文件:

Headshot_VT08.jpg

但事实并非如此。

我有什么遗失的吗?

2 个答案:

答案 0 :(得分:1)

尝试使用

 /([^/]*)/([^/]*)/([^/]*)/(.*)\.(.*)  
 so re::/([^/]*)/([^/]*)/([^/]*)/(.*)\.(.*)$::$2_$4.$5

前面的/很好,问题是(。*)/部分它会尽可能匹配,所以它会匹配/ images / Headshot / Rectangle /而不是第一位。

答案 1 :(得分:1)

试试这个

re::/(.*?)/(.*?)/(.*?)/(.*)$::$2_$4

无需将最后一个分开,因为您只需要为文件名前缀,因此您可以将其保留在单个捕获中

?在捕获结束时非贪婪(即:在第一场比赛时停止捕获)

我将修复wiki样本,因为只有一个/,问题没有出现,但序列不容易重复。