2015-05-27 5 views
-1

Как ограничить строку одним из следующих значений? Все регистронезависимы:Regex for string "hh: mm: ss tt"

  1. чч: мм:
  2. чч: мм: сс
  3. чч: мм тт
  4. чч: мм: сс тт

Я попытался это Regex^[hh: mm] [: ss]? [Tt]? [: Ss tt]? $, Но это не дает мне желаемых результатов. Любая помощь?

+0

Вы ищете Regex для определения Форматы даты в строке? –

+0

Да, но только Time Formats. Я использую сторонний элемент управления, у которого есть свойство Mask. Пользовательский формат настраивается пользователем. Мне просто нужно выбрать этот формат времени и предоставить ему свойство Mask элемента управления. Однако в случае, если неверный формат предоставлен, он будет заменен на формат времени по умолчанию. Следовательно, чтобы проверить формат предоставленного времени, мне нужно Regex. –

ответ

2

Я думаю, вы создаете путаницу между классом персонажа [ab] и группами (abc).
У попробовать с этим регулярным выражением:

^(hh:mm)(?::ss)?(?: tt)?$ 

где:

^   : begining of string 
    (hh:mm) : capture group that contains 'hh:mm' 
    (?::ss)? : optional non capture group that contains ':ss' 
    (?: tt)? : optional non capture group that contains ' tt' 
$   : end of string 
+0

Большое вам спасибо. Это решает мою проблему. –

+0

@AshwinMasarkar: Добро пожаловать, рад, что это помогает. – Toto

Смежные вопросы