2017-08-17 21 views
2

我提出的機器人程序,允許用戶輸入自定義的「時間」的字符串,例如:普通自定義時間字符串表達式

  • 3H」(意爲3小時)
  • 2分30秒 「(意爲2分30秒)
  • 2h962s 「(意爲2小時,962秒(原文如此))
  • 1h5s6 Ç 「(意爲1個小時,5秒,第二的100分之6)
  • 5h78m228c「(意爲5小時,78分鐘(原文如此)和第二(原文如此的百分之二百二十八))

我一直在使用這個正則表達式來驗證自定義時間字符串: ^([0-9]?[0-9] h)?([0-9] + m)?([0-9] + s)?([0-9] + c)?$ (因此最大允許99小時,無限分鐘,秒和百分之一秒)

問題是,喜歡使可選最後單位,以使程序默默使用以下單位。在上述例子中,用戶將被允許進入這些字符串來代替上述:

  • 」(未指定的「h」,以使該程序治療「3」作爲「3小時」)
  • 2m30」(未指定 「S」,以使該程序治療 「30」 爲 「30秒」)
  • 2h962s」(同樣,因爲沒有指定「s」,程序會將「962」視爲「962」分 「)
  • 1h5s6 「(未指定 」C「,以使該程序治療 」6「 爲 」100分之6第二的「)
  • 5h78m228c「(同樣,因爲沒有指定「c」,程序會將「228」視爲「228秒」)

那麼我會使用哪個正則表達式?

感謝

回答

1

檢查這一項:

^([0-9]?[0-9](h|$))?([0-9]+(m|$))?([0-9]+(s|$))?([0-9]+(c|$))?$ 

每次檢查時間單位,或者允許字符串的結尾。

+0

非常感謝您的快速回答!我會在今晚接受測試之前... –

+0

絕對是一個很好的答案。謝謝 ! –