2011-02-05 13 views
1

タイムコードを "0000"から "2459"の形式で一致させようとしています。特定の範囲内の数字をどのように一致させることができるので、0から24の間のすべての数値と、0から59の間のすべての数値を一致させることができます。マルチディジット番号範囲をRuby正規表現と照合するにはどうすればよいですか?

私は、個々の数字を一致させる方法を知っているが、例えば

/[0-2][0-4]/ 

は数字0-4、10キャプチャしまうので、それは私がやりたいことはありません - それらを逃し、14、および20〜24を間にだから私はすべての包括的に複数桁のキャプチャしたい。

答えて

10

トリックを行う必要があり、次の

/(?:[01][0-9]|2[0-4])[0-5][0-9]/ 

説明:

  • ?:は括弧非キャプチャします。
  • カッコ内は、00〜19または20〜24のいずれかと一致します。
  • その後、我々は00-59と一致します。
+0

+1よく解説されています。 –

0

code MOD 10 > 59のセバスチャンの応答が失敗します。例えば、それは最初の4桁数を要する1080

使用 代わり/(?:[01][0-9][0-9]|2(?:[0-3][0-9]|4[0-5]))[0-9]/、 を認識しないであろう 0または1

  • 、OR 23と
  • 、OR
関連する問題