Коррекция регулярных выражений

1

Мне нужно сопоставить строки с этим форматом 5-29-2014 3-24-01 PM. другим способом 5-29-2014 h-MM-SS tt

Здесь 5-29-2014 часть никогда не меняется и 3-24-01 PM будет меняться.

Так что некоторые соответствующие строки похожи на

  • 5-29-2014 1-02-01
  • 5-29-2014 12-00-01
  • 5-29-2014 3-24-01 AM
  • 5-29-2014 10-59-59

Это то, что я пробовал до сих пор, и это не сработало

^5-29-2014 (?:(?:([01]?\\d|2[0-3]):)?([0-5]?\\d):)?([0-5]?\\d)(\\s*[ap]m?)$

Любой может предложить для этого регулярное выражение?

  • 0
    Попробуйте 5-29-2014 (\d+)-(\d+)-(\d+) (AM|PM)
  • 1
    @AlphaDelta: Это будет соответствовать "5-29-2014 100-100-100 вечера", что, вероятно, не то, что задумал ОП.
Показать ещё 10 комментариев
Теги:

1 ответ

1
Лучший ответ

Вот то, что вы ищете;

5-29-2014 (1[0-2]|[1-9])-([0-5]?[0-9])-([0-5]?[0-9]) (AM|PM)

И вы можете видеть это в действии здесь.

  • 0
    Кстати ответ Улугбека Умирова тоже работает. Здесь с небольшим изменением ^5-29-2014 (?:0?[1-9]|1[0-2])-[0-5]\d-[0-5]\d\s*[AP][M]$

Ещё вопросы

Сообщество Overcoder
Наверх
Меню