2015-06-01 3 views
-1

Я пытаюсь извлечь время из строки, содержащей 3 разных временных метки.Как найти текст в следующей строке?

Строка:

Current time at \\\\gt2-dmsql1cst is 6/1/2015 11:59:49 AM\r\n\r\nLocal time (G 
MT-05:00) at \\\\gt2-dmsql1cst is 6/1/2015 10:59:49 AM\r\n\r\nThe command comple 
ted successfully.\r\n\r\n 

мне нужно только время, которое приходит после "Local Time".

Как я могу захватить это?

ответ

1

Вы можете использовать регулярное выражение, чтобы соответствовать всем, начиная с Local time, а затем установить capturing group.

(?si)Local time.*?(\d{2}:\d{2}:\d{2}\s+[AP]M) 

См demo

Regex объяснение:

  • (?si) - Варианты игнорировать случай и сделать . Совпадение новой строки
  • Local time.*? - Матч Local time и любые другие символы
  • (\d{2}:\d{2}:\d{2}\s+[AP]M) - группа захвата с ti мне информация:
    • \d{2} - Матч 2 цифры
    • : - Match буквальным ободочной
    • \d{2}:\d{2} - Матч 2 цифры, двоеточие и 2 цифры
    • \s+ - Матч 1 или более пробельные
    • [AP]M - Match AM или PM или am ...
1

Вы можете использовать следующие даты и времени:

/Local time.*?((?:\d{1,2}\/){2}\d{4}\s+\d{2}:\d{2}:\d{2}\s+[AP]M)/gsi 

См DEMO

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