Forum Webscript.Ru

Программирование => Perl => Тема начата: от 02 Мая 2002, 21:10:36

Название: Пара вопросов
Отправлено: от 02 Мая 2002, 21:10:36
Я вот тут читаю книжку по программированию на перл за 24часа..:) В конце каждой главы есть задания. Я вот что-то застрял на 6 главе(регулярные выражения)...

1.Я попытался написать шаблон стандартного формата времени, но он почему-то не хочет работать..:)
/[0-12]{1}:0-5{1}0-9{1}am|pm/i

2.Как найти слова, в которых содержится 4 и более смежных согласных букв, типа yardstick.
Название: Пара вопросов
Отправлено: от 03 Мая 2002, 21:08:45
1. И не будет работать. Там несколько ошибок.

а) в квадратных скобках указывают символьный класс. Выражение [0-12]{1} означает "0", "1" или "2".

б) "0-5{1}0-9{1}" эквивалентно простому "0-50-9"

в) вертикальная черта действует на весь теущий блок (то что находится внутри круглых скобок). Здесь круглых скобок нет, значит на все регулярное выражение. То есть ищется либо вся левая часть ("[0-12]{1}:0-5{1}0-9{1}am"), либо вся правая ("pm").

Данное выражение может выглядеть примерно так:

/XXXXX:[0-5][0-9] ?(am|pm)/i

где самое интересное, это правильно записать часы, что оставляется для дальнейшего обдумывания.


2. /\\b(\\w*[bcdfg......]{4}\\w*)\\b/i