1

時間表現の文字列を解析したい (週 (w)、日 (d)、時 (h)、分 (m) の 4 つのグループがある)。いくつかの例は次のとおりです。

  1. -3w 4d 2h 1m
  2. +3 週 2 時間 1 分
  3. 3D 1m
  4. 1日
  5. ...

私はこのパターンを思いつきました:

([+-]{0,1})([0-9]+)w?\s?(0?[1-9]|[12][0-9]|3[01])d?\s?([01]?[0-9]|2[0-3])h?\s?([0-5][0-9])m?
  • +または-またはなしで始まる
  • 週の前の値は無制限です
  • 日の前の値は 0 から 31 です
  • 時間の前の値は 0 から 23 です
  • 分の前の値は 0 から 59 です
  • 空白 (\s) はオプションです

しかし、このパターンは機能しません。助けてください。私の英語でごめんなさい!

4

2 に答える 2

1
^([+-]?)([0-9]+)?w?\s*?(0?[1-9]|[12][0-9]|3[01])?d?\s*?([01]?[0-9]?|2[0-3])?h?\s*?([0-5]?[0-9])?m?$

正規表現を変更しました。今すぐ動作します。ただし、さらにテストが必要な場合があります。

デモを参照してください。

http://regex101.com/r/sB4kE6/4

于 2014-09-05T09:46:19.667 に答える
0

これは私が検証に使用するものです:

 ^(?:(?:0?[0-9]|1[0-2]):[0-5][0-9]\s?(?:(?:[Aa]|[Pp])[Mm])?|(?:1[3-9]|2[0-3]):[0-5][0-9])$

24:00 と 12:00 の形式で動作し、大文字の午前/午後を許可します。

たぶん、それは正しい方向にあなたを助けることができます.

于 2014-09-05T10:16:59.017 に答える