Скачиваний:
14
Добавлен:
09.05.2014
Размер:
17.83 Кб
Скачать

Домашнее задание 3

Знакомство с регулярными выражениями. Perl.

Работу выполнил

Студент гр. 2100

Голубцов Евгений

2008

Задание 1:

Пусть переменная var имеет значение abc123. Определите, что возвращают следующие выражения - true или false.

1)$var =~ /./

2)$var =~ /[A-Z]*/

3)$var =~ /(\d)2(\1)/

4)$var =~ /abc$/

5)$var =~ /1234?/

1)true

Символ точка соответствует любому символу в данной позиции, т.е. в данном случае все значения с любым первым символом, т.к. далее ничего нет то вообще любых выражений.

2)true

[A-Z] – соответствует любой заглавной букве, * - повторение символа от 0 до бесконечности раз.

3)false

\1 – переменная от подшаблона (\d), в нашем случае получается значение 121.

4)false

$-привязка к концу строки.

5)true

?- соответствует 1 или 0 вхождений, т.е. может быть 1234 или 123.

Задание2:

Пусть $var имеет значение abc123abc. Какое значение примет $var после следующих подстановок?

1)$var =~ s/abc/def/;

2)$var =~ s/[a-z]+/X/g;

3)$var =~ s/B/W/i;

4)$var =~ s/(.)\d.*\1/d/;

5)$var =~ s/(\d+)/$1*2/e;

Оператор s/PATTERN/REPLACEMENT/ производит поиск строки, соответствующей шаблону PATTERN и если строка найдена, то подстановку на ее место текста REPLACEMENT.

Этот оператор используется со следующими опциями:

e интерпретирует правую часть как выражение.

g производит подстановку на место каждой строки, соответствующей шаблону.

i производит поиск различающий большие и маленькие буквы.

m обрабатывает строку, как состоящую из нескольких строк.

o происходит подстановка только на место первой встреченной строки.

s обрабатывает строку, как состоящую только из одной строки.

x использует расширенные регулярные выражения.

1)$var=def123abc

2)$var=X123X;

[a-z]+ - повторение строчных символов 1 и более раз.

3)$var=aWc123abc

i – поиск различает строчные и заглавные буквы.

4)$var=abd

5)$var=abc246abc

e - интерпретирует правую часть как выражение, ищем числовое значение и умножаем его на 2. (123*2)

Задание 3:

Чему соответствуют следующие шаблоны?

1)/a|bc*/

2)/[\d]{1,3}/

3)/\bc[aou]t\b/

4)/(xy+z)\.\1/

5)/^$/

1)a|b – либо a либо b, т.е. ищет совпадение на ac* или bc*.

2){1,3} – повторение от 1 до 3 раз, т.е. любое число из 1, 2 или 3 символов.

3)\b - граница слова, т.е. слово начинающееся с буквы с затем один из символов [aou], затем t

4)x затем, y может повторяться 1 и более раз, затем z, затем точка и повторение подшаблона (xy+z)

5)нулевая строка ‘’, ^-начало строки, $-конец строки.

Задание 4:

Написать шаблоны, соответствующие следующим примерам:

1)не менее 5 маленьких латинских букв

2)цифра 1 или слово "one" (в любом регистре)

3)число, возможно, дробное (с десятичной точкой)

4)любая буква, за которой следует гласная, повторяется еще раз (пример: "pop", "fifth", "daddy")

5)хотя бы один "+"

1)/[a-z]{5,}/

{5,} – повторение не менее 5 раз.

2)/1|one/i

i-поиск в обоих регистрах.

3)/[+-]?\d+\.?\d*/

Число возможно дробное, как положительное так и отрицательное.

4)/([a-zA-Z])[aeiouy](\1)/

Внутри регулярного выражения можно указывать "подшаблоны", заключая их в круглые скобки и ссылаться на них как '\номер' Первая скобка обозначается как '\1'.

5)/[+]/

[ ] - класс символов

Соседние файлы в папке материалы к собеседованию