Re: [請問] Ant Renamer的regexp問題?

看板RegExp (正規表示式 Regular Expression)作者 (人類)時間7年前 (2017/02/24 04:07), 編輯推噓0(000)
留言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
文章代碼(AID): #1Ohq4PTv (RegExp)
文章代碼(AID): #1Ohq4PTv (RegExp)