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/