0

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

然而,事实并非如此。

有什么我想念的吗?

4

2 回答 2

1

尝试使用

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

前面的 / 很好,问题是 (.*)/ 部分将尽可能匹配,因此它将匹配 /images/Headshot/Rectangle/ 而不仅仅是第一位。

于 2013-08-20T13:09:16.897 回答
1

试试这个

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

无需分开最后一个,因为您只想为文件名添加前缀,因此您可以将其保存在一次捕获中

这 ?在捕获结束时是非贪婪的(即:在第一次匹配时停止捕获)

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

于 2013-08-20T21:25:25.097 回答