если вы хотите совпадать с
00:00:00 до 23:59:59
egrep '([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]'t
если вы хотите совпадать с
12:00 до 00:59
egrep -i '((?:0[0-9]|1[012]):[0-5][0-9]:[0-5][0-9]\s?(?:a|p)m)'
При работе с файлом необходимо выполнить поиск строки с отметкой времени в формате H: MM: SS. Я попробовал следующий egrep '[0-9]: [0-9]: [0-9]'. Не работал для меня Что я делаю не так в регулярных выражениях?
если вы хотите совпадать с
00:00:00 до 23:59:59
egrep '([0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]'t
если вы хотите совпадать с
12:00 до 00:59
egrep -i '((?:0[0-9]|1[012]):[0-5][0-9]:[0-5][0-9]\s?(?:a|p)m)'
[0-9]:[0-9]:[0-9]
будет соответствовать H: M: S, бот не H: MM: SS.
Каждый набор квадратных скобок соответствует одному символу.
Таким образом, чтобы получить что-то, что соответствует H: MM: SS, вы можете использовать:
[0-9]:[0-9][0-9]:[0-9][0-9]
Обратите внимание, что выше НЕ будет соответствовать H: M: S
Для соответствия H: MM: SS ИЛИ H: M: S ИЛИ H: M: SS ИЛИ H: MM: S используйте следующее
[0-9]:[0-9]+:[0-9]+
+
означает совпадение с последним символом, 1 или более раз (включая первое совпадение)
Я предлагаю вам использовать
egrep '[0-9]:[0-9]:[0-9]'
где означает совпадение с последним символом как минимум два раза и максимум два раза (= ровно два раза), где последний символ в этом примере был числом от 0 до 9.
Если вы хотите найти по крайней мере один и максимум два, вы должны изменить его на
egrep '[0-9]:[0-9]:[0-9]'
который соответствует, например, 0:1:22
и 0:11:22
и 00:11:22
и 00:11:2
и так далее.
Ответ Sirius_Black дал также тестирование в реальном времени. Мой ответ будет соответствовать нереалистичным временам, таким как 99:99:99, что, однако, может быть продолжительностью.