※ 引述《vernc (cralvin)》之銘言:
: 23_0023_24.jpg -> 023_023_024.jpg
: input0014@[email protected] -> input014@[email protected]
: <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@[email protected]"
.replace(/(\d+)/g, "000000000000$1")
.replace(/0*(\d*)(\d{3})/g, "$1$2");
-> "input014@[email protected]"
另外再推薦 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