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