re

Здесь обсуждаются все вопросы, не попадающие под другие категории
learner

re

Сообщение learner »

Вопрос по регулярным выражениям. У меня есть такой файл time:
12:55
Time is 23:24
24:55
25:02
03:44
00:35
12:98
3:12
7:65
29:55
66:45

Хочу вывести те строки где есть правильно указанное время.
Выполняю egrep '([01]?[0-9]|2[0-3]):[0-5][0-9]' time и получаю:
12:55
Time is 23:24
24:55
25:02
03:44
00:35
3:12
29:55
66:45

Что не так ?????

Аватара пользователя
mend0za
Неотъемлемая часть форума
Сообщения: 2332
Зарегистрирован: 30 авг 2002, 12:33
Откуда: Minsk

Сообщение mend0za »

Код: Выделить всё

egrep '^([01]?[0-9]|2[0-3]):[0-5][0-9]$' time 

^ и $ чтобы зафиксировать начало и конец текста

иначе в в строке 66:45 находит подвыражение 6:45 и считает что все зашибись (то же самое и для остальных неверных строк)

PS:

Код: Выделить всё

egrep '^([01]?[0-9]|2[0-3]):[0-5][0-9]$' time 
12:55
03:44
00:35
3:12
И увидел я зверя, выходящего из тундры. И число его было 3.14159265358979324...

Ответить