At Thu, 19 Jun 2008 13:22:35 +0900,

成瀬です。

> こんにちは。
> 正規表現の書き方について困っているので御教授下さい。
> 1〜7桁からなる数字(左がゼロ埋めされている場合も有り)か判定したいので以下の正規表現を考えました。
> /\A[0-9]{1,7}\z/
> これで上手くいったのですが、7桁全てゼロで埋められている数字"0000000"はマッチして欲しくないのです。
> 
> 正規表現で上手く書く方法はあるでしょうか?

木村さんがすでに模範解答を示していらっしゃるので、お遊びを。
/\A([1-7][0-7]{0,6}|0([1-7][0-7]{0,5}|0([1-7][0-7]{0,4}|0([1-7][0-7]{0,3}|0([1-7][0-7]{0,2}|0([1-7][0-7]?|0[1-7]?)?)?)?)?)?)?\z/