簡體   English   中英

時間段的正則表達式

[英]Regular expression for time period

我正在使用 jdev 12.2.1.0.0 並且我正在嘗試使用“”驗證輸入字段(字符串),我嘗試在其中以如下所示的格式輸入時間段

  • 1h 40m 20s
  • 1小時40米
  • 2小時30秒
  • 30m 20s
  • 30米
  • 30(按30m計算)
  • 10s

所以我需要一個正則表達式,它允許用戶以任何給定的格式輸入時間段,也不需要考慮單位之間的空間(即:1h30m 也是有效的)。

試試這個正則表達式:
^(?:\\d+h)?(?:(?!\\n)\\s)?(?:\\d+m?)?(?:(?!\\n)\\s)?(?:\\d+s)?$

演示在這里

這是與您想要的所有情況相匹配的建議:

((\d{1,2}h\s?)?(\d{1,2}m\s?)?(\d{1,2}s\s?)?)|\d{1,2}

regex101 上的演示

匹配所有情況。
如果超過 1 個周期,分鍾/秒必須介於 0 和 59 之間:

^(?:\d+[hms]?|\d+h(?:[ ]*[0-5]?\dm)?(?:[ ]*[0-5]?\ds)?|\d+m[ ]*[0-5]?\ds)$

在這里測試

[0-9]+[d|h|m|s|D|H|M|S]?[^$]?([0-9]+[h|m|s|H|M|S]?[^$]?)?([0-9]+[m|s|M|S]?[^$]?)?([0-9]+[s|S]?[^$])?

其他答案都沒有達到我的目的。 但多虧了這一點,我對 Regex 的研究很少。 所以只要記住 [0-9] 表示一個數字,+ 是將它擴展到多個數字。 [d|h|m|s|] 表示 d,h,m 或 s 中的任何字母。 您可以隨意添加天數或小時數。 ? 是將前面的內容設為可選。

https://regex101.com/r/dpyonK/17

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM