プロが教えるわが家の防犯対策術!

同一フォルダにある

Chart1.gif
Chart2.gif
:(中略)
Chart99.gif
Chart100.gif
:(続く)

とあるファイルを,「RegRen」という正規表現対応リネームツールによって
http://www.magnet-j.org/mag/member.nifty.ne.jp/m …

001.gif
002.gif
:(中略)
099.gif
100.gif
:(続く)

というフォーマットにリネームしたいのですが,うまい表現はありません
でしょうか.

ちなみに,
(1) Chartを消す
(2) 1桁の数字の前に00
(3) 2桁の数字の前に0を付ける
という三段階ならわたしでもできそうなので,ここは「一発」にこだわっての
質問です.よろしくお願い致します。

A 回答 (2件)

2回ならできるんですけどね・・・



1回目(Chartを消して0を2つ加え、3桁以上の数字にする)

検索 ^Chart(\d{1,3})$
置換 00\1

これで
Chart1→001
Chart11→0011
Chart111→00111

2回目(下3桁のみ取得)

検索 ^\d*(\d{3})$
置換 \1

これで
001→001
0011→011
00111→111
    • good
    • 0
この回答へのお礼

sakuhatさん,レスありがとうございました.

なるほどなるほど.詰め将棋みたいですね(^^)
一手減るだけでも間違いを減らすことができそうです.

活用させていただきますm(_ _)m

お礼日時:2005/06/01 22:00

残念ながら、一発変換は無理のようです。


Chart1.gif~Chart9.gif は ^Chart(\d)$ 00\1
Chart10.gif~Chart99.gif は ^Chart(\d\)$ 0\1
Chart100.gif~Chart999.gif は ^Chart(\d\)$ \1

で変換でできますが、これはすでに、想定済みだと思います。
それで、提案ですが、この作者に以下のようなメールを打ってみてはいかがですか。

正規表現の独自拡張の作成依頼
\1の代わりに\01 \001 \0001 \0001 のようなものを
定義する。
\01は\1と同じ意味であるが、\1の桁数が1桁の時、頭に0を1つける
\001は\1と同じ意味であるが、\1の桁数が2桁以内の時、頭に3桁になるまで0をつける
一般的には
\000000...01 (0がN個とする)の時、
全体の桁数がN+1になるまで、\1の前に0を付加する。

この仕様がつかえれば
^Chart(\d{1,3})$ \001
で一発変換できます。
    • good
    • 0
この回答へのお礼

tatsu99さん,貴重なアドバイスありがとうございます.

やはり無理ですか...

独自拡張の方はなるほどと思いました.
同じ置換は今後も続くので是非要望したいです.

開発がとまってる(っぽい)ことが気がかりですが...

お礼日時:2005/06/01 09:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!