Re: [請問] Ant Renamer的regexp問題?
看板RegExp (正規表示式 Regular Expression)作者eight0 (人類)時間7年前 (2017/02/24 04:07)推噓0(0推 0噓 0→)留言0則, 0人參與討論串3/3 (看更多)
※ 引述《vernc (cralvin)》之銘言:
: 23_0023_24.jpg -> 023_023_024.jpg
: input0014@1234@3.jpg -> input014@1234@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")
最終結果就是
"input0014@1234@3.jpg"
.replace(/(\d+)/g, "000000000000$1")
.replace(/0*(\d*)(\d{3})/g, "$1$2");
-> "input014@1234@003.jpg"
另外再推薦 Advanced Renamer︰http://i.imgur.com/24NsWKA.png
--
(* ̄▽ ̄)/‧★*"`'*-.,_,.-*'`"*-.,_☆,.-*`
http://i.imgur.com/oAd97.png
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.169.184.76
※ 文章網址: https://www.ptt.cc/bbs/RegExp/M.1487880473.A.779.html
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
RegExp 近期熱門文章
PTT數位生活區 即時熱門文章