重复值的正则表达式

时间:2013-03-29 15:47:16

标签: regex

我正在尝试找到正确的正则表达式(用于Java和JavaScript)来验证一系列星期几和24小时时间格式。我想出了时间格式,但我正在努力想出完整的解决方案。

正则表达式需要验证包含以下一个或多个的模式,用逗号分隔。

{双字符日} HH:MM-HH:MM

有效字符串的三个例子是:

M 5:30-7:00
M 5:30-7:00, T 5:30-7:00, W 18:00-19:30
F 12:00-14:30, Sa 6:45-8:15, Su 6:45-8:15

6 个答案:

答案 0 :(得分:1)

这应验证24小时的时间:

/^((M|T|W|Th|Fr|Sa|Su) ([01]?[0-9]|2[0-3]):[0-5][0-9]-([01]?[0-9]|2[0-3]):[0-5][0-9](, )?)+$/

时区的信用额转到mkyonghttp://www.mkyong.com/regular-expressions/how-to-validate-time-in-24-hours-format-with-regular-expression/

答案 1 :(得分:0)

你可以试试这个

[A-Za-z]{1,2}[ ]\d+:\d+-\d+:\d+

答案 2 :(得分:0)

这应该可以解决问题:

^(M|Tu|W|Th|F|Sa|Su) \d{1,2}:\d{2}-\d{1,2}:\d{2}(, (M|Tu|W|Th|F|Sa|Su) \d{1,2}:\d{2}-\d{1,2}:\d{2})*$

请注意,您在上面示例中显示的T不明确。您可能希望强制执行TuTh,如我的正则表达式中所示。

答案 3 :(得分:0)

这将捕获数组中的所有集合。周短日内的T值是值得商榷的(周二或周四?)。

^((?:[MTWFS]|Tu|Th|Sa|Su)\s(?:[0-9]{1,2}:[0-9]{2})-(?:[0-9]{1,2}:[0-9]{2})(?:,\s)?)+$

(?:)是非捕获组,因此您的实际匹配将是(例如):

  • M 5:30-7:00
  • T 5:30-7:00
  • W 18:00-19:30

但整条生产线都将验证。

为行边界添加了^和$以及显式的时间 - 时间匹配,因为一些正则表达式解析器可能无法使用我以前的方式。

答案 4 :(得分:0)

你可以试试这个:([MTWFS][ouehra]?) ([0-9]|[1-2][0-9]):([0-6][0-9])-([0-9]|[1-2][0-9]):([0-6][0-9])

答案 5 :(得分:0)

我会这样做:

(((M|T(u|h)|W|F|S(a|u)) ((1*\d)|(2[0-3])):[1-5]\d-((1*\d)|(2[0-3])):[1-5]\d(, )?)+