|
[7578] Re:正規表現で文字列中の数字の桁をそろえたい。 | |
|
▽ 2013/3/12 (火) 06:02:15 あかま |
|
Opera/9.80 (Windows NT 5.1) Presto/2.12.388 Version/12.14 |
サクラエディタの置換で一度にこれを置換する方法は思いつきませんでしたが、wshのjsマクロで置換処理を一度で済ますスクリプトを組むなら
> Editor.SelectAll();
> Editor.InsText(Editor.GetSelectedString().replace(/(\D+)(\d+)
([\r\n])/g,function(d,a,b,c){return a+(("00"+b).slice(-3))+c;}));
でいけます。
perlなどでも出来ると思いますが、あらかじめ
> eval(Editor.GetSelectedString());
とかいう内容のマクロを組んでおいて、対象のファイル中に上述のマクロを手書きして範囲選択してマクロ実行とすれば比較的手軽に実行出来ます。
> eval("Editor.SelectAll();Editor.InsText(Editor.GetSelectedString()."+Editor.GetSelectedString()+");");
とするなどで実行時の記述量を減らすと使いやすいかもしれません。
置換に使うキーワードの入力を一回だけ、という条件ならば
> 置換前(\D+)(\d{1,2})([\r\n])
> 置換後${1}0$2$3
として「全て置換(A)」を複数回実行すれば行けます。
邪道ですがUWSCなどで「全て置換(A)」を連打するスクリプトを外部コマンドやマクロから実行すれば操作としては一回入力一回実行にできます。
マクロから直接置換ダイアログの入力が読めれば外部ツールに頼らずに済むんですが、現状そういうマクロ関数はないようなので外部ツール越しにサクラエディタを操作するなどが限界ではないかと思います。
|
|