0

「HHMM」または「HHMM、HHMM」を含む文字列を検証するための正規表現がありますこれは私が使用しているものです:

^[0-2][0-9][0-5][0-9],[0-2][0-9][0-5][0-9]$

この種の作品1247は大丈夫3247ではありません。同様1247,2200に大丈夫ですが、1247,2290そうではありません。

ただし、 のような 24 時間時計の値を許可する2500ことはできません。正規表現にチェックを入れる方法はあり2ます0-4か?

4

4 に答える 4

3

はい、とのケースを から|分離するために使用します。0x1x2y

^(?:[01][0-9]|2[0-4])[0-5][0-9],(?:[01][0-9]|2[0-4])[0-5][0-9]$

(?:...)非キャプチャ グループを作成し、|オペレータの範囲を制限します。値を取得したいHH場合 (たとえば、後で置換などに使用する場合) は、(...)代わりに使用してください。

更新:他のすべての無効な時間を許可する2400が回避する2411ことは、別の方法で行うことができます|:

(?:(?:[01][0-9]|2[0-3])[0-5][0-9]|2400)

ただし24MM2400実際には00MM. この場合、正規表現は次のようになります。

^(?:[01][0-9]|2[0-3])[0-5][0-9],(?:[01][0-9]|2[0-3])[0-5][0-9]$
于 2013-01-18T15:12:29.613 に答える
0

はい、

^([0-1][0-9]|2[0-4])([0-5][0-9])(,([0-1][0-9]|2[0-4])([0-5][0-9]))?$

私はそれがあなたのために働くことを願っています。

于 2013-01-18T15:14:18.633 に答える
0

条件付き正規表現とチュートリアルをここで使用できます。

于 2013-01-18T15:13:59.953 に答える
0

正規表現でOR式を使用できます(2[0-4]|[01][0-9])

だからそれは次のようになります^(?:2[0-4]|[01][0-9])[0-5][0-9],(?:2[0-4]|[01][0-9])[0-5][0-9]$

于 2013-01-18T15:11:30.080 に答える