Re: [请问] Ant Renamer的regexp问题?

楼主: eight0 (欸XD)   2017-02-24 04:07:49
※ 引述《vernc (cralvin)》之铭言:
: 23_0023_24.jpg -> 023_023_024.jpg
: [email protected]@3.jpg -> [email protected]@003.jpg
: <Regexp Expr="(\D*)(\d\.)" Repl="$1\0\0$2"/>
: <Regexp Expr="^(\D*)(\d\d\.)" Repl="$1\0$2"/>
: <Regexp Expr="^(\D*)0+(\d\d\d\.)" Repl="$1$2"/>
: 本来是用上面三行,但只能处理单一组数字
: 想做到如上处理复数的效果
: 想像那三行要同一个rule,在任何情况下都适用
: 如上面那二行都是三组数字,想在n组数字下都通用
: 请问这要怎下?
: thx
你要做的就两件事情
1. 在数字前补 0
2. 把数字截到你要的长度
第一个可以写成
.replace(/(\d+)/g, "000000000000$1")
看自己需要几个 0,就多补几个 0
再来就是把数字截到你要的长度
.replace(/\d*(\d{3})/g, "$1")
问题是这样 "1234" 会被截成 "234",所以要把前面非 0 字符的后缀也抓出来
.replace(/0*(\d*)(\d{3})/g, "$1$2")
最终结果就是
"[email protected]@3.jpg"
.replace(/(\d+)/g, "000000000000$1")
.replace(/0*(\d*)(\d{3})/g, "$1$2");
-> "[email protected]@003.jpg"
另外再推荐 Advanced Renamer︰http://i.imgur.com/24NsWKA.png

Links booklink

Contact Us: admin [ a t ] ucptt.com