2012-04-25 13 views

答えて

2

何かあれば、69:69:69は時間として意味をなさないので、それは長くなるはずです。

([01]\d|2[0-3]):([0-5]\d|60):([0-5]\d|60) 
allow 00-23  00-59 and 60 00-59 and 60 
       ~~~~~~~~~~~~~~~~~~~~~~~~~ 
       60 is useful for supporting leap seconds 

あなたが本当にあなたの例をしたいが、短い場合は、あなたがそれを行うことができます:あなたは値の検証を行う必要があるが、ちょうど倍のように見えるものを見つけていないと仮定すると、

[0-6]\d(:[0-6]\d){2} 
    ~~   ~~~ 
     |   exactly two repetitions of preceding() block 
     Matches digits in many regex implementations 
1

、どのようにちょうど約:

\d{1,2}:\d{2}:\d{2} 

あなたが本当に^$のuで固定したくない値を見つけるために、テキストを検索している場合あなたの正規表現のフレーバーには行頭と行末にマッチするものがあり、ソースデータにはそれらの行があります。

+0

あなたは、 "正規表現のフレーバに行頭と行末に一致するものがないかぎり、^と$にアンカーすることを本当にしたくない"という意味を説明してください。 – David542

+0

"11:22:33"で始まり、正規表現 '/^\ d {2}:\ d {2}:\ d {2} $ /'を使ってテキストをテストしたりスキャンしたりする結果は「一致しません」となります。 ':Times:\ n11:22:33 \ n44:55:66 \ nOK"というテキストがあり、その正規表現を使ってJavaScriptで一致を検索すると、一致するものは得られません。 Rubyの '^'は "文字列の開始"ではなく "行頭"を意味する(そして '$'は "文字列の終り"ではなく "行末"である)ため、Rubyの同じ正規表現は2つの一致を返します。 – Phrogz

関連する問題