9

12 時間形式と 24 時間形式で時刻を検証するために 2 つの正規表現を使用していますが、場合によっては機能しません。

10:00 AM/12:00 PM のような 12 時間形式を検証するために、正規表現を使用しました

^(([0]?[0-9]|1[0-2]):[0-5][0-9][ ][aApP][mM])|((1[3-9]|2[0-3]):[0-5][0-9])$

23:00/12:00 のような 24 時間形式を検証するために、正規表現を使用しました

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

1 に答える 1

15

最初の正規表現に 24 時間形式が含まれている理由がわかりません。12 時間形式だけを単純化すると、次のようになります。

new Regex(@"^(?:0?[0-9]|1[0-2]):[0-5][0-9] [ap]m$", RegexOptions.IgnoreCase);

24 時間形式の場合は、次のように簡略化できます。

new Regex(@"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$");

または両方を組み合わせるには:

new Regex(@"^(?:(?:0?[0-9]|1[0-2]):[0-5][0-9] [ap]m|(?:[01][0-9]|2[0-3]):[0-5][0-9])$", RegexOptions.IgnoreCase);
于 2013-09-30T06:00:52.653 に答える