Главная / Программирование / Регулярные выражения Perl и их применение

Регулярные выражения Perl и их применение - ответы на тесты Интуит

Правильные ответы выделены зелёным цветом.
Все ответы: Подробное неформальное описание синтаксиса и механизма работы регулярных выражений языка Perl с примерами использования от простых к сложным.
Смотрите также:
Какие операторы удаляют все пробельные символы только в начале текста?
(1) s/^ +//m
(2) s/^\s+//g
(3) s/^ *//m
(4) s/^\s*//s
(5) s/\s+?//
(6) s/\s*?//
(7) s/^[\t\r\3]*//
Что будет напечатано в результате работы программыmy $a='a'; my $re=qr/$a/i; $a='A'; print 'OK' if 'a' =~ $re;
(1) OK
(2) ничего
Какое значение получит переменная $a в результате работы программыmy $a=10; 'abc123' =~ /((\w)+)(?{ $a=$+ })/;
(1) 10
(2) 3
(3) abc123
Какое значение получит переменная $1 после выполнения оператора'abc123def' =~ /(abc)(??{ '(\d+)' })/;
(1) abc
(2) 123
(3) undefined
Какое значение получит переменная $1 в результате работы программы'abc' =~ /(\w)/; '123' =~ //;
(1) a
(2) 1
(3) 123
Что будет напечатано в результате работы оператораprint join '-', split /^/, "ab\nbc\nde";
(1) ab bc de
(2) ab -bc -de
Какое число будет захвачено в переменную $1 в следующем операторе поиска: '12345 1234 123' =~ /(12\d+|123\d+|1\d+)/ ?
(1) 12345
(2) 1234
(3) 123
Какое значение будет иметь переменная $1 в результате работы оператора 'abc123' =~ /\w+?(?=(\d+?))/?
(1) 1
(2) 123
(3) undefined
Нужно захватить из текста в переменную $1 IP-адрес примерно такого формата: 192.64.235.45. Какой оператор делает это правильно?
(1) /(\d+.\d+.\d+.\d+)/
(2) /(\d+.){4}/
(3) /(\d+.{4})/
(4) /((\d+|\.)+)/
(5) /([\d.]+)/
Какое значение получит переменная $1 в результате выполнения программы "abc\n123" =~ /(\w$)/?
(1) c
(2) 3
(3) c\n
Что выйдет на печать в результате работы программы $_="123!abc!"; /\G\w+(?{ print pos $_ })!/g?
(1) 3
(2) 37
(3) ничего напечатано не будет
Какое значение получит переменная $_ в результате работы программы $_='abc123'; my $a='\d+'; s/$a/!/?
(1) abc123
(2) abc!!!
(3) abc!
Имеются следующие адреса электронной почты: a-b.c@def.com, a+b@def.co.uk, a$b@def.ijk.co.uk. Какие регулярные выражения соответствуют всем этим адресам?
(1) [\w\$+.-]+\@[.\w]+
(2) [\w\$+-.]+\@[.\w]+
(3) [\w$+\.\-]+\@[.\w]+
Какое значение будет иметь переменная $^R в результате работы программы'abcABC' =~ /(?:([a-z])(?{ $+ })|([A-Z])(?{ $+ }))\Z/?
(1) c
(2) B
(3) C
Какое регулярное выражение соответствуют всей строке '-123.456', которая содержит число?
(1) /\d+.\d+/
(2) /^\-\d+\.\d*$/
(3) ^\-?\d+\.\d+$/
(4) /^[-.\d]+$/
Что будет напечатано в результате работы программыmy $a='(?i)[a-z]'; my $re=qr/$a/; print 'OK' if 'A' =~ /$re/;
(1) OK
(2) ничего
Что будет напечатано в результате работы программы'abc123' =~ /((\w)+)/; print join ',', @-;
(1) 0,5
(2) 0,0,5
(3) 0,0
Имеется примерно такой текст: $_='5XXXXX', где сначала идет число n и за ним n символов X. Какие регулярные выражения соответствуют всему этому тексту?
(1) /(\d+)(??{ 'X' x $1 })/
(2) '5XXXXX' =~ /(\d+)(??{ "X{$1}" })/
(3) '5XXXXX' =~ /(\d+)(??{ 'X{$1}' })/
Какое значение получит переменная $1 в результате работы программыmy $re=qr/(\d)+/; '123' =~ $re; '456' =~ //;
(1) 3
(2) 6
(3) 4
Что будет напечатано в результате работы оператораprint join '-', split /:/, 'a:b:c:';
(1) a-b-c-
(2) a-b-c
Какой фрагмент будет захвачен в строке 'abc 123' в переменную $1 регулярным выражением /(\w)+$/?
(1) 123
(2) 23
(3) 3
Какое значение будет иметь переменная $1 в результате работы оператора 'abc123' =~ /(?<=(\w{2}?))(?!\d+?)/?
(1) bc
(2) ab
(3) пустой фрагмент
(4) c
Нужно из текста в $_ захватить в массив @a все слова, которые состоят только из латинских букв и не содержат букву h независимо от регистра. В каких вариантах это делается верно?
(1) my @a=/\b[a-gi-z]+\b/g
(2) my @a=/[a-gi-zA-IG-Z]+/g
(3) my @a=/[a-gi-z]+/gi
(4) my @a=/[A-GI-Z]+/gi
(5) my @a=/(?i)\b[A-GI-Z]+\b/g
Какое значение получит массив @a в результате работы оператора my @a = "abc!abc" =~ /\w+/?
(1) (abc)
(2) () или пусто
(3) 1
Что выйдет на печать в результате работы программы $_="123!abc!"; pos($_)=4; print /\G(\w+)!/g?
(1) 123
(2) abc
(3) 123abc
Какое значение получит переменная $_ в результате работы программы $_='aBc'; s/\u[a-z]/!/?
(1) !Bc
(2) a!c
(3) aBc
В $_ дан текст:$_=<<EOD; Первый адрес:<a href='mailto:abc\@def.com'>abc\@def.com</a>, второй адрес - <a href='mailto:ab.c\@def.com'>ab.c\@def.com</a> третий адрес - <a href = " mailto: a+b\@de-f.co.uk " >a-b\@def.ijk.co.uk</a> EOD Какие операторы извлекают все 3 адреса электронной почты из этого текста?
(1) /<a\s+href\s*=\s*['"]?mailto:([\w+.-]+\@[.\w-]+)/g
(2) /<a\s+href\s*=\s*['"\s]*mailto:\s*([\w+.-]+\@[.\w-]+)/g
(3) /<a\s+href\s*=.*?mailto:\s*([\w+.-]+\@[.\w-]+)/g
Какое значение будет иметь переменная $a в результате работы программыmy $a=0; 'abcABC' =~ /(?:abc(?{ ++$a })|ABC(?{ ++$a }))/
(1) 0
(2) 1
(3) 2
Какие регулярные выражения захватят в $1 только подстроку 'abc -123' в строке 'xyz abc -123 uvw'?
(1) /\w+(\w+\s+-\d+)/
(2) /[\w\s]+(\w+\s+[-\d]+)/
(3) /\S+\s+(\S+\s+[-\d]+)/
Что будет напечатано в результате работы программыmy $a='[a-z]'; my $re=qr'$a'; print 'OK' if 'A' =~ /$re/;
(1) OK
(2) ничего
Что будет напечатано в результате работы программы'abc' =~ /(\w+)/; { 'def' =~ /(\w+)/ } print $1;?
(1) abc
(2) def
Строка в $_ состоит из нескольких натуральных чисел, разделенных запятыми, числа строго возрастают. Например: $_='11,12,30'. Какие регулярные выражения соответствуют каждой такой строке?
(1) /^(?:(?>(\d+))(??{ $n < $1 ? ',' : '(?!)' })(?{ $n=$1 }))+$/
(2) /^(?:(?>(\d+))(??{ $n < $1 ? ',|$' : '(?!)' })(?{ $n=$1 }))+$/
(3) /^(?:(?>(\d+))(??{ $n < $1 ? ',' : '(?!)' })(?{ $n=$1 }),)+$/
Какое значение получит переменная $1 в результате работы программыmy $re=qr/(\d)+/; '123' =~ $re; $re=qr/(\d+)/
(1) 123
(2) 456
(3) 6
Что будет напечатано в результате работы оператораprint join '-', split //, 'abc';
(1) a-b-c
(2) abc
(3) a-bc
Будут ли возвраты в процессе работы оператора 'abc123' =~ /(?>[a123]+$|\w+$)/?
(1) да
(2) нет
Что выйдет на печать в результате работы оператора 'abc123' =~ /\w+?(?=(\d+?))(?{ print $1 })/?
(1) пустой фрагмент
(2) undefined
(3) 1
В данном тексте в каждом слове надо от повторяющихся подряд латинских символов оставить ровно один из них, остальное оставить без изменения. Какие операторы делают это правильно?
(1) s/(.)\1+/$1/g
(2) s/(\w)\1/$1/g
(3) s/(\w+)\1/$1/g
(4) s/(\w)\1+/$1/gi
(5) s/(\w)\1+/$1/g
(6) s/(\w+)\1/$1/gi
Какое значение получит переменная $1 в результате работы программы "abc\n" =~ /\w\Z(.)\z/?
(1) \n
(2) undefined
(3) c
Какое значение получит переменная $_ в результате работы программы $_="123!abc!"; pos($_)=4; s/\G(\w+)!/x/?
(1) 123!x
(2) x!x
(3) 123!x!
Какое значение получит переменная $_ в результате работы программы $_='aBc'; my $a='[a-z]+'; s/$a/!/?
(1) !!!
(2) !Bc
(3) !B!
(4) a!c
В $_ дан текст:$_=<<EOD; Первый адрес:<a href="mailto:abc\@def.com">abc\@def.com</a>, второй адрес - <a href=http://www.intuit.ru>intuit.ru</a> EOD Какие операторы извлекают оба адреса из этого текста?
(1) /href=.*?(?:mailto:)?(\S+)>/g
(2) /href=.*?(?:mailto:)?(\S+?)>/g
(3) /href=.*?(?:mailto:)?([^>"]+)>/g
Что напечатается в результате работы программыour $a; 'abcABC' =~ /(?{ local $a=0 })(?:abc(?{ ++$a })|ABC(?{ $a+=10 }))(?{ print $a })/
(1) 0
(2) 1
(3) 10
(4) 11
В тексте надо захватить в $1 фрагмент (может и пустой) от первых до вторых кавычек. Какие операторы делают это правильно?
(1) /"(.+)"/
(2) /"(.+)"/s
(3) /"(.*)"/
(4) /"(.*?)"/s
(5) /"([^"]+)"/
(6) /"([^"]*)"/
Что будет напечатано в результате работы программыmy $a='a'; my $re=qr/\$a/; print 'OK' if '$a' =~ /$re/;
(1) OK
(2) ничего
Какое значение получит переменная $a в результате работы программыmy $a; 'abc' =~ /(\w)+(?{ $a=$+ })
(1) a
(2) c
(3) undefined
Какие операторы возвращают истину?
(1) 'XXX' =~ /^(??{ join '',(X,X,X) })$/
(2) 'XXX' =~ /^(??{ (X,X,X) })$/
(3) 'XXX' =~ /^(??{ "\Uxxx" })$/
Что будет напечатано в результате выполнения программыmy $a='a'; $_='ab'; while ($a ne 'd' && /$a/o) { print $&; $a++; }
(1) abc
(2) a
(3) aaa
Что будет напечатано в результате работы программы$a='-'; for (0..1) { print split /$a/, 'a-b:c' . "\n"; $a=':'; }
(1) a-b:c!a-b:c!
(2) ab:c!ab:c!
(3) ab:c!a-bc!
Какой фрагмент строки будет захвачен в переменную $1 в операторе '!1a' =~ /(?>([!\d]+|\S+))$/?
(1) !1
(2) a
(3) !1a
Какое значение получит переменная $2 в результате работы программы 'aBc1b23' =~ /a(\w)\w+(\1)/i?
(1) пусто
(2) undefined
(3) b
(4) B
В тексте надо заменить все прописные латинские буквы соответствующими строчными. Какие операторы делают это правильно?
(1) s/\w+/lc $1/ge
(2) s/(\w)/$1/gei
(3) s/([A-Z])/$1/gei
(4) s/([A-Z])/lc $1/g
(5) s/([A-Z])/lc $1/ge
(6) s/(\w)/lc $1/ge
Какое значение получит переменная $_ в результате работы программы $_='abc123'; s/(\d)/$1+100/e?
(1) abc123
(2) abc10123
(3) abc101102103
Какое значение получит переменная $1 в результате работы программы $_="123!abc!"; /\w+/g; /(\w+)/?
(1) abc
(2) 123
(3) undefined
Какое значение получит переменная $_ в результате работы программы $_='[a-z]+abcABC'; my $a='[a-z]+'; s/\Q$a\E\w+?/!/?
(1) [a-z+]!bcABC
(2) !bcABC
(3) [a-z]+abcABC
Адрес abc@intuit.ru зашифрован скриптом:$_=<<EOD; <script> a='\@'; e='abc'+a+'intuit.ru'; document.write('<a href=m'+'ailto:'+e+'><b>'+e+'</b></a>'); </script> EOD Какие операторы правильно печатают этот адрес?
(1) print "$1\@$2" if /\@.*?=.([^'"]+)[^'"]+['"]([^'"]+)/
(2) print "$1\@$2" if /\@.*?=.([^'"]+)[^'"]+['"]([^'"]+)/s
(3) print "$1\@$2" if /\@.*?=.([^'"]+).[^'"]+['"]([^'"]+)/s
Какое значение примет переменная $n в результате работы программыmy $n; $_='abc ab abcd'; /(?<!\w)(\w+)(?{$n=$+ if !defined($n) || $n lt $+})(?!)/?
(1) ab
(2) abc
(3) abcd
Строка содержит полный путь и имя файла в Windows и ничего больше. Надо захватить в $1 имя файла. Какие операторы делают это правильно?
(1) /.*\(.+)/
(2) /.*\\(.+)/
(3) /.+\\(.*)/
(4) /.*?\\(.*)/s
(5) /.*\\(.*?)/s
(6) /\\(.*)/s
Что будет напечатано в результате работы программыmy $re=qr/(ab)c/; print $1.$2 if 'abcabc' =~ /$re+$re+/;
(1) ничего
(2) ab
(3) abab
Что будет напечатано в результате работы программы$_='abc123def'; /\d+/; print substr $_, 0, $-[0];
(1) abc
(2) 123
(3) def
Какие операторы возвращают истину?
(1) 'ABC' =~ /^(??{ "(?i)[a-z]+" })$/
(2) 'ABC' =~ /^(?i)(??{ "[a-z]+" })$/
(3) 'ABC' =~ /^(??{ "[a-z]+" })$/i
Что будет напечатано в результате выполнения программыmy ($a,$b)=('a','a'); while ($a ne 'd' && $b =~ /(??{ "$a" })/o) { print $&; $a++; $b++; }
(1) aaa
(2) a
(3) abc
Что будет напечатано в результате работы оператораprint join '-', split 1+1, 'a1b2c';
(1) a1b2c
(2) a1b-c
(3) a-b2c
Будет ли найдено совпадение в операторе 'abc' =~ /(?>|\S+)/?
(1) да
(2) нет
Какое значение получит переменная $1 в результате выполнения программы "abc\n123" =~ /^(\w+?)(?(1)\s\d+)/?
(1) c
(2) abc
(3) undefined
(4) пустой фрагмент
В тексте есть число, которое может быть целым, а может иметь точку (в этом случае обязательна дробная часть). Число может стоять в конце предложения, и поэтому за ним может быть точка. Предполагаем, что в тексте нет таких конструкций, как дата 2006.12.26, которую можно было бы спутать с дробным числом. Примеры чисел: +1, -2.5, -.010. Надо захватить в $1 первое такое число. Какие операторы делают это правильно?
(1) /([+-]?(?:\d+(?:\.\d+)?)/
(2) /([+-]?(\d+(\.\d+)?|\.\d+))/
(3) /([+-]?(?:\d+(?:\.\d+)?|\.\d+))/
(4) /([+-]?(\d*\.*\d*)/
(5) /([+-]?(\d*\.*\d+)/
(6) /(?:[+-]?(\d*\.*\d*)/
Какое значение получит переменная $1 в результате работы программы "abc123" =~ /(123|abc)$/?
(1) abc
(2) 123
(3) undefined
Какое значение получит переменная $_ в результате работы программы $_="123"; s//!/g?
(1) 1!2!3!
(2) !1!2!3!
(3) !1!2!3
Какое значение получит переменная $_ в результате работы программы $_='abcABC'; my $re=qr'[a-z]+'i; s/(?-i)$re/!/?
(1) !ABC
(2) !
(3) abc!
В переменной $_ находится HTML-страница. Надо проверить, есть ли у этой страницы часть head, и если есть, то есть ли внутри контейнера <head> </head> тег <base href="…">. Если он есть, то переменной $base надо присвоить этот URL из части head документа. Если в head нет тега base, то ничего делать не надо. Пример текста страницы:<html> <head> <title>Title</title> <base href="http://www.intuit.ru/download"> </head> … Какие операторы делают это корректно, учитывая разное оформление тегов веб-мастерами?
(1) $base=$1 if m#<head[^>]*>.*<base\s+href\s*=\s*['"]?([^'">\s]+)#i
(2) $base=$1 if m#<head[^>]*>(?>(?!<base|</head).)+<base\s+href\s*=\s*['"]?([^'">\s]+)#is
(3) $base=$1 if m#<head[^>]*>(?>(?!<base).)+<base\s+href\s*=\s*['"]?([^'">\s]+)#is
Какое значение получит переменная $^R в результате работы программы'ab!abc!' =~ /(\w+)!(?(?{ $1 eq 'abc' })(\w+)|(?{ $1 ne 'ab' }))/
(1) пусто
(2) undefined
(3) 1
Какие регулярные выражения захватят в $1 подстроку '-123abc', а в $2 - подстроку '1+2abc' из строки '1-2ab -123abc a1 1+2abc'?
(1) /([-123\w]+)\s+(\S+)/
(2) /\S+\s+(\S+)\s+(\S+)/
(3) /(\S+c)\s+\S+\s+([+\w]*)/
Что будет напечатано в результате работы программыmy $re=qr'(\w+)c'; print $1 if 'abcabc' =~ /$re+/;
(1) ничего
(2) c
(3) abcab
Какое значение получит переменная $1 в результате работы программы$_='abc123def'; /(\w+)/; /\d+(\d+)/;
(1) abc
(2) 23
(3) 3
Какие операторы возвращают истину?
(1) 'ABC' =~ /^(??{ "ABC\$" })/
(2) my $a='$'; 'ABC' =~ /^(??{ "ABC$a" })/
(3) my $a="\$"; 'ABC' =~ /^(??{ "ABC$a" })/
Что будет напечатано в результате выполнения программыuse re 'eval'; my $a=$b=1; while ($a < 4 && $b =~ /(?{ ++$a })$a/) { print $&; $b++; }
(1) ничего
(2) 123
(3) 1
Что будет напечатано в результате работы оператораprint join '-', grep /\d/, qw/a 1 b 2 c/;
(1) a-1-b-2-c
(2) 1-2
(3) a-b-c
Какой текст будет захвачен, соответственно, в переменную $1 и $2 следующим оператором: 'abcd' =~ /(\w+)(\w+)/?
(1) a и bcd
(2) abc и d
(3) ab и cd
Какое значение получит переменная $1 в результате выполнения программы "abc\n123" =~ /(.*)/?
(1) abc\n123
(2) abc
(3) пустой фрагмент
Какое значение получит массив @a в результате работы программы my @a="abc\n123" =~ /\w+/g?
(1) (abc)
(2) () или пусто
(3) (abc, 123)
Какое значение получит переменная $1 в результате работы программы "123abc" =~ /(\d)?\d+(?(1)abc)/?
(1) 1
(2) пусто
(3) undefined
Какое значение получит переменная $1 в результате работы программы "123" =~ /\G(?=\d)(\d)/g?
(1) 1
(2) 2
(3) 3
Какое значение получит переменная $_ в результате работы программы $_='abcABCdefDEF'; my $re=qr'[A-Z]+'; s/${re}defDEF/!/gi?
(1) abc!defDEF
(2) abc!
(3) abcABCdefDEF
Дан текст:$_=<<EOD; <a href='javascript:void(window.open("http://intuit.ru/book.html","","width=480,height=320"))'>Book</a><br> <a href="http://intuit.ru/index.html">index</a> EOD Какие операторы правильно печатают обе ссылки?
(1) print join "\n", m#<a\s+href=.*?(http://[^"]+)#
(2) print join "\n", m#<a\s+href=.*(http://[^"]+)#g
(3) print join "\n", m#<a\s+href=.*?(http://[^"]+)#gi
Какое значение примет переменная $2 в результате работы программы'ab!abc!a!' =~ /(\w+)!(\w+)!(?(?{ $1 gt $2 })$)/
(1) a
(2) ab
(3) abc
Какие операторы удаляют все пробельные символы только в конце текста?
(1) s/\s+$//m
(2) s/\s*$//m
(3) s/\s*$//
(4) s/\s+\Z//
(5) s/\s+?$//
(6) s/\s*\z//
(7) s/\s*?\Z//
Что будет напечатано в результате работы программыmy $a='a'; my $re=qr/$a/i; $a='A'; print 'OK' if 'A' =~ $re;
(1) OK
(2) ничего
Какое значение получит переменная $a в результате работы программыmy $a=10; 'abc123' =~ /((\w)+)(?{ $a=$^N})/;
(1) 10
(2) 3
(3) abc123
Какое значение получит переменная $1 после выполнения оператора'abc123def' =~ /abc(??{ '(\d+)' })(def)/;
(1) 123
(2) def
Какое значение получит переменная $1 в результате работы программы'abc' =~ /(?>(\w+))\w/; '123' =~ //;
(1) ab
(2) 12
(3) undefined/
Что будет напечатано в результате работы оператораprint join '-', split /^/m, "ab\nbc\nde";
(1) ab bc de
(2) ab -bc -de
Какое слово будет захвачено в переменную $1 в следующем операторе поиска: 'abcde abcd abc' =~ /(ab\w+|abc\w+|a\w+)/ ?
(1) abcde
(2) abcd
(3) abc
Какое значение будет иметь переменная $1 в результате работы оператора 'abc123' =~ /\w+?(?!(\d+?))/?
(1) 1
(2) 123
(3) undefined
Нужно захватить в $1 и $2 первые два целых числа из текста, которые там имеются. Какие операторы делают это правильно?
(1) /(\d+)(\d+)/
(2) /(\d+).+(\d+)/
(3) /(\d+).*(\d+)/s
(4) /(\d+)\D+(\d+)/
(5) /\b(\d+)\D+(\d+)\b/
(6) /(\d+?)\D+(\d+)/
Какое значение получит переменная $1 в результате выполнения программы "abc\n123" =~ /(\w$)/m?
(1) c
(2) 3
(3) c\n
Что выйдет на печать в результате работы программы $_="123!abc!"; print /\G\w+(?{ print pos $_ })!/g?
(1) 3
(2) 37
(3) 37123!abc!
(4) 371
Какое значение получит переменная $_ в результате работы программы $_='abc123'; my $a='[a-z]+'; s/$a/!/?
(1) abc123
(2) !!!123
(3) !123
Имеются следующие адреса электронной почты: ab.c@def.com, a+b@de-f.co.uk, a-b@def.ijk.co.uk. Какие регулярные выражения соответствуют всем этим адресам?
(1) [\w.+-]+\@[.\w-]+
(2) [\w+-.]+\@[.\w-]+
(3) [\w$.-+]+\@[.\w-]+
Какое значение будет иметь переменная $^R в результате работы программы'abcABC' =~ /(?:([a-z])(?{ $^N })|([A-Z])(?{ $^N }))(?(?{ $1 })ABC)\Z/;
(1) c
(2) B
(3) C
Какие регулярные выражения соответствуют всей строке 'abc123'?
(1) /\w+\d/
(2) /\d*\w+/
(3) /\w*\d+/
(4) /[a-c\d]*/
Что будет напечатано в результате работы программыmy $a='[a-z]'; my $re=qr/$a/; print 'OK' if 'A' =~ /$re/;
(1) OK
(2) ничего
Что будет напечатано в результате работы программы'abc123' =~ /((\w)+)/; print join ',', @+;
(1) 6,6
(2) 6,6,6
(3) 1,6
Имеется примерно такой текст: $_='XXXXX5', где сначала идут n символов X, а за ними число n. Какие регулярные выражения соответствуют всему этому тексту?
(1) 'XXXXX5' =~ /(X+)(??{ length($1) })/
(2) 'XXXXX5' =~ /(X+)(??{ 'length($1)' })/
(3) 'XXXXX5' =~ /(X+)(??{ "length($1)" })/
Какое значение получит переменная $1 в результате работы программыmy $re=qr/(\d)+/; '123' =~ $re; '456' =~ //;
(1) 3
(2) 6
(3) 4
Что будет напечатано в результате работы оператораprint join '-', split /:/, ':a:b:c:';
(1) a-b-c-
(2) a-b-c
(3) -a-b-c
Какой фрагмент будет захвачен в строке 'abc! 23!' в переменную $1 регулярным выражением /(\w\w)+!/?
(1) никакой
(2) bc
(3) 23
Какое значение будет иметь переменная $1 в результате работы оператора 'abc123' =~ /(?<=(\w{2}?))(?=\d+?)/?
(1) bc
(2) ab
(3) пустой фрагмент
(4) c
Нужно из текста в $_ захватить в массив @a все слова, которые состоят только из латинских букв и содержат букву h независимо от регистра. В каких вариантах это делается верно?
(1) my @a=/\b[a-z]+h[a-z]+\b/gi
(2) my @a=/[a-zA-Z]+h[a-zA-Z]+/g
(3) my @a=/[a-z]+h[a-z]+/gi
(4) my @a=/[A-Z]*h[A-Z]*/gi
(5) my @a=/\b[A-Za-z]*[hH][A-Za-z]*\b/g
Какое значение получит массив @a в результате работы оператора my @a = "abc!abc" =~ /\w+/g?
(1) (abc)
(2) () или пусто
(3) (abc, abc)
Что выйдет на печать в результате работы программы $_="123!abc!"; pos($_)=4; print /\G(\w+)!/?
(1) 123
(2) abc
(3) 123abc
Какое значение получит переменная $_ в результате работы программы $_='aBc'; s/\U[a-z]/!/?
(1) !Bc
(2) a!c
(3) aBc
В $_ дан текст:$_=<<EOD; Первый адрес:<a href='mailto:abc\@def.com'>abc\@def.com</a>, второй адрес - <a href='mailto:ab.c\@def.com'>ab.c\@def.com</a> третий адрес - <a href = " mailto: a+b\@de-f.co.uk " >a-b\@def.ijk.co.uk</a> EOD Какие операторы извлекают все 3 адреса электронной почты из этого текста?
(1) /href\s*=.*mailto:\s*([\w+.-]+\@[.\w-]+)/g
(2) /href\s*=.*?mailto:\s*([\w+.-]+\@[.\w-]+)/g
(3) /href\s*=.*?mailto:\s*?([\w+.-]+\@[.\w-]+)/g
Какое значение будет иметь переменная $a в результате работы программыmy $a=0; 'abcABC' =~ /(?:abc(?{ ++$a })|ABC(?{ ++$a }))(?!\w)/;
(1) 0
(2) 1
(3) 2
Какие регулярные выражения захватят в $1 только подстроку '123 a-bc' в строке 'xyz 123 a-bc uvw'?
(1) /(\d+[\s\w-]+)/
(2) /(\d+\s+[\w-]*)/
(3) /\S+\s+(\d+\s*[a-bc]+)/
Что будет напечатано в результате работы программыmy $a='a'; my $re=qr/$a/; print 'OK' if 'a' =~ /$re/;
(1) OK
(2) ничего
Что будет напечатано в результате работы программы'123' =~ /(\d+)/; { '456' =~ /(\d+)/ } print $1;?
(1) 123
(2) 456
Строка в $_ состоит из нескольких натуральных чисел, разделенных запятыми, числа строго возрастают. Например: $_='11,12,30'. Какие регулярные выражения соответствуют каждой такой строке?
(1) /^(?:(?>(\d+))(??{ $n < $1 ? ',|\z' : '(?!)' })(?{ $n=$1 }))+$/
(2) /^(?:(?>(\d+))(??{ $n < $1 ? ',|\Z' : '(?!)' })(?{ $n=$1 }))+$/
(3) /^(?:(?>(\d+))(??{ $n <= $1 ? ',|$' : '(?!)' })(?{ $n=$1 }))+$/
Какое значение получит переменная $1 в результате работы программыmy $a=''; my $re=qr/(\d)+/; '123' =~ $re; $re=qr/(\d+)/; '456' =~ /$a/;
(1) 123
(2) 456
(3) 6
Что будет напечатано в результате работы оператораprint join '-', split //, 'abc', 2;
(1) a-b-c
(2) a-bc
(3) abc
Будут ли возвраты в процессе работы оператора 'abc123' =~ /(?>[a123]+|\w+)$/?
(1) да
(2) нет
Что выйдет на печать в результате работы оператора 'abc123' =~ /\w+(?=(\d+))(?{ print $1 })/?
(1) 123
(2) 3
(3) undefined
Надо у каждого слова в тексте удалить последний символ. Какие операторы делают это правильно?
(1) s/\w*?\b//g
(2) s/\w+?\b//g
(3) s/(\w)\b/$1/g
(4) s/(\w+)\w/$1/g
(5) s/(\w*)\w/$1/g
(6) s/\w\b//g
Какое значение получит переменная $1 в результате работы программы "abc\n" =~ /\w\Z(.)\z/s?
(1) \n
(2) undefined
(3) c
Какое значение получит переменная $_ в результате работы программы $_="123!abc!"; pos($_)=4; s/\G(\w+)!/x/g?
(1) 123!x
(2) x!x
(3) 123!x!
Какое значение получит переменная $_ в результате работы программы $_='aBc'; my $a='[a-z]+'; s/\U$a/!/?
(1) !!!
(2) !Bc
(3) !B!
(4) a!c
В $_ дан текст:$_=<<EOD; Первый адрес:<a href="mailto:abc\@def.com">abc\@def.com</a>, второй адрес - <a href=http://www.intuit.ru>intuit.ru</a> EOD Какие операторы извлекают оба адреса из этого текста?
(1) /href=.*(?:mailto:)?([^>"]+)>/g
(2) /href=(?:"mailto:)?([^>"]+)(?:"|>)/g
(3) /href=(?:"mailto:)?([^>"]+)[">]/g
Что напечатается в результате работы программыour $a; 'abcABC' =~ /(?{ local $a=0 })(?:abc(?{ ++$a })|ABC(?{ $a+=10 }))(?!\w)(?{ print $a })/
(1) 0
(2) 1
(3) 10
(4) 11
В тексте надо захватить в $1 фрагмент от предпоследних до последних кавычек. Какие операторы делают это правильно?
(1) /"([^"]*)"[^"]*/
(2) /"([^"]*)"[^"]*$/
(3) /[^"]+"(.+)"/s
(4) /.*"([^"]*)"/s
Что будет напечатано в результате работы программыmy $a='a'; my $re=qr/$a/; print 'OK' if '$a' =~ /$re/;
(1) OK
(2) ничего
Какое значение получит переменная $a в результате работы программыmy $a; 'abc' =~ /(\w+(\w))(?{ $a=$^N })/;
(1) c
(2) abc
(3) undefined
Какие операторы возвращают истину?
(1) 'XXX' =~ /^(??{ '\Uxxx' })$/
(2) 'XXX' =~ /^(??{ my $a='XXX' })$/
(3) 'XXX' =~ /^(??{ my $a='XXX'; $a })$/
Что будет напечатано в результате выполнения программыmy $a=$_='a'; while ($a ne 'd' && /$a/o) { print $&; $_++; $a++; }
(1) abc
(2) a
(3) aaa
Что будет напечатано в результате работы программы$a='-'; for (0..1) { print split /$a/o, 'a-b:c' . "!"; $a=':'; }
(1) a-b:c!a-b:c!
(2) ab:c!ab:c!
(3) ab:c!a-bc!
Какой фрагмент строки будет захвачен в переменную $1 в операторе '!1a' =~ /((?>[!\d]+|\S+))$/?
(1) !1
(2) a
(3) !1a
Какое значение получит переменная $2 в результате работы программы 'aBc1b23' =~ /a(\w)\w+(\1)/?
(1) пусто
(2) undefined
(3) b
(4) B
В тексте надо заменить все строчные латинские буквы соответствующими прописными. Какие операторы делают это правильно?
(1) s/\w+/uc $1/ge
(2) s/(\w)/$1/gei
(3) s/([a-z])/$1/gei
(4) s/([a-z])/uc $1/g
(5) s/([a-z])/uc $1/ge
(6) s/(\w)/uc $1/ge
Какое значение получит переменная $_ в результате работы программы $_='abc123'; s/(\d)/$1+100/eg?
(1) abc123
(2) abc10123
(3) abc101102103
Какое значение получит переменная $1 в результате работы программы $_="123!abc!"; /\w+/g; /(\w+)/g?
(1) abc
(2) 123
(3) undefined
Какое значение получит переменная $_ в результате работы программы $_='[a-z]+abcABC'; my $a='[a-z]+'; s/\Q$a\E\w+/!/?
(1) [a-z+]!bcABC
(2) !bcABC
(3) !
Адрес abc@intuit.ru зашифрован скриптом:$_=<<EOD; <script> a='\@'; e='abc'+a+'intuit.ru'; document.write('<a href=m'+'ailto:'+e+'><b>'+e+'</b></a>'); </script> EOD Какие операторы правильно печатают этот адрес?
(1) print "$1\@$2" if /\@.*=.([^'"]+).[^'"]+['"]([^'"]+)/s
(2) print "$1\@$2" if /\@.*=.([^'"]+).[^'"]+.([^'"]+)/
(3) print "$1\@$2" if /\@[^=]+=.([^'"]+).[^'"]+.([^'"]+)/
Какое значение примет переменная $n в результате работы программыmy $n; $_='abc ab abcd'; /(?<!\w)((?>\w+))(?{$n=$+ if !defined($n) || $n gt $+})(?!)/?
(1) ab
(2) abc
(3) abcd
(4)
Строка содержит полный путь и имя файла в Windows и ничего больше. Надо захватить в $1 имя диска. Какие операторы делают это правильно?
(1) /(.+)\\/
(2) /(.+)\/
(3) /([^\]+)\\/
(4) /([^\\]+)\\/
(5) /^([^\\]*)\\/
(6) /(.+?)\\/
Что будет напечатано в результате работы программыmy $re=qr/(\w+)\w/; print $1 if 'abcabc' =~ /$re+/;
(1) ничего
(2) ab
(3) abcab
Что будет напечатано в результате работы программы$_='abc123def'; /\d+/; print substr $_, $-[0], $+[0] - $-[0];
(1) abc
(2) 123
(3) def
Какие операторы возвращают истину??
(1) 'ABCD' =~ /^(??{ "(?i)abc" })D$/
(2) 'ABCD' =~ /^(??{ "(?i)abc" })d$/
(3) 'ABCD' =~ /^(??{ "\Uabc" })d$/
Что будет напечатано в результате выполнения программыmy $a='a'; $b='ab'; while ($a ne 'd' && $b =~ /(??{ "$a" })/o) { print $&; $a++; }
(1) abc
(2) ab
(3) a
Что будет напечатано в результате работы оператораprint join '-', split /(?:\d)/, 'a1b2c';
(1) a-b-c
(2) a-1-b-2-c
(3) a1b2c
Будет ли найдено совпадение в операторе 'abc' =~ /(?>a|\S+)\b/?
(1) да
(2) нет
Какое значение получит переменная $1 в результате выполнения программы "abc\n123" =~ /^(\w+?)(?(1)\s\d+)/m?
(1) c
(2) abc
(3) undefined
(4) пустой фрагмент
В тексте есть телефонный номер. Примеры номеров: +7 495 9569214, (834-35)4-34-35, 3-45-56. Надо захватить в $1 этот номер. Какие операторы делают это правильно?
(1) /(\+?[\d (-)]+\d)/
(2) /(\+?[\d ()-]+)/
(3) /(\+?[\d ()-]+\d)/
(4) /(+?[\d ()-]+\d)/
(5) /(\+?[\d ()-]+\d*)/
(6) /(\+?[-\d ()]+\d)/
Какое значение получит переменная $1 в результате работы программы "abc123" =~ /(123|abc$)/?
(1) abc
(2) 123
(3) undefined
Какое значение получит переменная $_ в результате работы программы $_="123"; s/(?=\d)/!/g?
(1) 1!2!3!
(2) !1!2!3!
(3) !1!2!3
Какое значение получит переменная $_ в результате работы программы $_='abcABC'; my $re=qr'[a-z]+'; s/$re/!/i?
(1) !ABC
(2) !
(3) abc!
В переменной $_ находится HTML-страница. Надо проверить, есть ли у этой страницы часть head, и если есть, то есть ли внутри контейнера <head> </head> тег <base href="…">. Если он есть, то переменной $base надо присвоить этот URL из части head документа. Если в head нет тега base, то ничего делать не надо. Пример текста страницы:<html> <head> <title>Title</title> <base href="http://www.intuit.ru/download"> </head> … Какие операторы делают это корректно, учитывая разное оформление тегов веб-мастерами?
(1) $base=$1 if m#<head[^>]*>(?>(?!<base|</head).)+<base\s+href\s*=\s*['"]?([^'">\s]+)#is
(2) $base=$1 if m#<head[^>]*>(?>(?!<base|</head).)+<base\s+href\s*=\s*['"]?([^'">\s]+)"#is
(3) $base=$1 if m#<head[^>]*>(?>(?!<base|</head).)+<base\s+href\s*=\s*['"]?([^'"]+)#is
Какое значение получит переменная $^R в результате работы программы'ab!abc!' =~ /(\w+)!(?(?{ $1 eq 'abc' })(\w+)|(?{ $1 eq 'ab' }))/
(1) пусто
(2) undefined
(3) 1
Какие регулярные выражения захватят в $1 подстроку 'yahoo!', а в $2 - подстроку 'a_bc' из строки 'ab!c yahoo! a_bc'?
(1) /([\w!]+)\s+(\S+)/
(2) /([\w]+!)\s+(\S+)/
(3) /([\w]+!)\s+(\w+)/
Что будет напечатано в результате работы программыmy $re=qr/(\w+)c/; print $1 if 'abcabc' =~ m'$re+';
(1) ничего
(2) abc
(3) abcab
Какое значение получит переменная $1 в результате работы программы$_='abc123def'; /(\w+)/; /(?>\d+)(\d+)/;
(1) abc123def
(2) 23
(3) 3
Что будет напечатано в результате выполнения программыuse re 'eval'; my $a=$b=1; while ($a < 4 && $b =~ /(?{ ++$a })$a/o) { print $&; $b++; }
(1) ничего
(2) 123
(3) 1
Что будет напечатано в результате работы оператораprint join '-', grep /\d/, qw/a 11 b 22 c/;
(1) a-11-b-22-c
(2) 11-22
(3) 1-1-2-2
Какой текст будет захвачен, соответственно, в переменную $1 и $2 следующим оператором: 'abcd' =~ /(\w*)(\w+)/?
(1) a и bcd
(2) abc и d
(3) ab и cd
Какое значение получит переменная $1 в результате выполнения программы "abc\n123" =~ /(?s:(.*))/?
(1) abc\n123
(2) abc
(3) пустой фрагмент
Какое значение получит переменная $1 в результате работы программы "123abc" =~ /(\d)+\d+(?(1)abc)/?
(1) 1
(2) 2
(3) 12
Какое значение получит переменная $1 в результате работы программы my @a = "123" =~ /\G(?=\d)(\d)/g?
(1) 1
(2) 2
(3) 3
Какое значение получит переменная $_ в результате работы программы $_='abcABCdefDEF'; my $re=qr'[A-Z]+'i; s/${re}defDEF/!/?
(1) abc!defDEF
(2) !
(3) abcABCdefDEF
Дан текст:$_=<<EOD; <a href='javascript:void(window.open("http://intuit.ru/book.html","","width=480,height=320"))'>Book</a><br> <a href="http://intuit.ru/index.html">index</a> EOD Какие операторы правильно печатают обе ссылки?
(1) print join "\n", !<a\s+href=.*(http://[^"]+)!g;
(2) print join "\n", m!<a\s*href=.*?(h.+)"!g;
(3) print join "\n", m!<a\s*href=.*?(h.+?)"!g;
Какое значение примет переменная $2 в результате работы программы'ab!abc!a!' =~ /(?:(\w+)!){2}(?(?{ $1 gt $2 })$)/?
(1) a
(2) ab
(3) abc
Какие операторы удаляют все пробельные символы только в начале каждой строки текста?
(1) s/^ +//m
(2) s/^ *//m
(3) s/^\s+//g
(4) s/^\s*//gms
(5) s/^\s+?//g
(6) s/^\s*?//g
(7) s/^[\r\3\t]+//g
Что будет напечатано в результате работы программыmy $a='a'; my $re=qr/$a/; $a='A'; print 'OK' if 'A' =~ /$re/i;
(1) OK
(2) ничего
Какое значение получит переменная $a в результате работы программыmy $a=10; 'abc123' =~ /((\w)+(?{ $a=$+ }))/;
(1) 10
(2) 3
(3) abc123
Какое значение получит переменная $1 после выполнения оператора'abc123def' =~ /(abc(??{ '(\d+)' })def)/;
(1) abc123
(2) 123
(3) undefined
Какое значение получит переменная $1 в результате работы программыmy $a=''; 'abc' =~ /(\w+)/; '123' =~ /$a/;
(1) abc
(2) 123
(3) undefined
Что будет напечатано в результате работы оператораprint join '-', split /$/, "ab\nbc\nde";
(1) ab bc de
(2) ab -bc -de
Какое телефонный номер будет захвачен в переменную $1 в следующем операторе поиска: '123-45-67 123-45 1234' =~ /(12[\d-]+|123[\d-]+|1[\d-]+)/ ?
(1) 123-45-67
(2) 123-45
(3) 1234
Какое значение будет иметь переменная $1 в результате работы оператора 'abc123' =~ /\w+?((?!\d+?))/, если известно, что это не undefined?
(1) 1
(2) 123
(3) пустой фрагмент
Нужно из текста $_='2007/3/15' захватить год, месяц и день, соответственно, в $year, $month и $day. В каких вариантах это делается верно?
(1) /(\d+)/; m!\d+/(\d+)!; m!\d+/\d+/(\d+)!; my($year,$month,$day)=($1,$2,$3);
(2) my($year,$month,$day)=m!(\d+)/(\d+)/(\d+)!g
(3) my($year,$month,$day)=m!(\d+)/(\d+)/(\d+)!
Какое значение получит переменная $1 в результате выполнения программы "abc\n123" =~ /^(\w+)(?=\Z)/?
(1) abc
(2) 123
(3) undefined
Что выйдет на печать в результате работы программы $_="123!abc!"; my @a = /\G\w+(?{ print pos $_ })!/g?
(1) 3
(2) 37
(3) 37123!abc!
(4) 371
Какое значение получит переменная $_ в результате работы программы $_='abc123'; my $a='[abc]'; s/$a/!/?
(1) !!!123
(2) !bc123
(3) !123
Имеются следующие адреса электронной почты: ab.c@def.com, a+b@de-f.co.uk, a-b@def.ijk.co.uk. Какие регулярные выражения соответствуют всем этим адресам?
(1) [a-z.+]+\@[.\w-]+
(2) [A-z+-.]+\@[.\w-]+
(3) [A-z+.-]+\@[.\w-]+
Какое значение будет иметь переменная $^R в результате работы программыmy $a=1; 'abcABC' =~ /abc(?(?{ $a })ABC)/;
(1) 1
(2) пусто
(3) undefined
Какие регулярные выражения соответствуют всей строке '1a2b3c+'?
(1) /\w++/
(2) /[\d\w]++/
(3) /[\w+]*/
(4) /\S+/
Что будет напечатано в результате работы программыmy $a='[a-z]'; my $re=qr/$a/i; print 'OK' if 'A' =~ /$re/
(1) OK
(2) ничего
Что будет напечатано в результате работы программы'abc123' =~ /((\w+)+)/; print join ',', @-;
(1) 0,0
(2) 0,0,0
(3) 0,5
Имеется примерно такой текст: $_='5XXXXX', где сначала идет число n и за ним n символов X. Какие регулярные выражения соответствуют всему этому тексту?
(1) '5XXXXX' =~ /(\d+)(??{ 'X' x \1 })/
(2) '5XXXXX' =~ /(\d+)(??{ 'X' x length($1) })/
(3) '5XXXXX' =~ /(\d+)(??{ X{$1} })/
Какое значение получит переменная $1 в результате работы программыmy $a=''; my $re=qr/(\d)+/; '123' =~ $re; '456' =~ /$a/;
(1) 3
(2) 6
(3) 4
Что будет напечатано в результате работы оператораprint join '-', split /:/, ':a:b:c:', 3;
(1) -a-b-c
(2) a-b-c
(3) -a-b-:c:
Какой фрагмент будет захвачен в строке 'abc? 23?' в переменную $1 регулярным выражением /(\w\w)+?/?
(1) abc?
(2) bc?
(3) ab
Какое значение будет иметь переменная $1 в результате работы оператора 'abc123' =~ /(?<=(\d))(?= \d+)/?
(1) 1
(2) 2
(3) пустой фрагмент
(4) undefined
Нужно из текста в $_ захватить в массив @a все слова, состоящие только из латинских букв и содержащие единственную букву h, которая не стоит с краю, независимо от регистра. В каких вариантах это делается верно?
(1) my @a=/\b[a-gi-z]+h[a-gi-z]+\b/gi
(2) my @a=/[a-gi-zA-GI-Z]+h[a-gi-zA-GI-Z]+/g
(3) my @a=/[a-gi-z]+h[a-gi-z]+/gi
(4) my @a=/[A-GI-Z]+h[A-GI-Z]+/gi
(5) my @a=/\b[A-GI-Za-gi-z]+[hH][A-GI-Za-gi-z]+\b/g
Какое значение получит массив @a в результате работы оператора my @a = "abc!abc" =~ /\G\w+/g?
(1) (abc)
(2) () или пусто
(3) (abc, abc)
Что выйдет на печать в результате работы программы $_="123!abc!"; pos($_)=4; print /\A(\w+)!/?
(1) 123
(2) abc
(3) 123abc
Какое значение получит переменная $_ в результате работы программы $_='aBc'; s/\L[a-z]/!/gi?
(1) !!!
(2) !B!
(3) a!c
В $_ дан текст:$_=<<EOD; Первый адрес:<a href='mailto:abc\@def.com'>abc\@def.com</a>, второй адрес - <a href='mailto:ab.c\@def.com'>ab.c\@def.com</a> третий адрес - <a href = " mailto: a+b\@de-f.co.uk " >a-b\@def.ijk.co.uk</a> EOD Какие операторы извлекают все 3 адреса электронной почты из этого текста?
(1) /:.*([\w+.-]+\@[.\w-]+)/g
(2) /:.*?([\w+.-]+\@[.\w-]+)/g
(3) /:\s*([\w+.-]+\@[.\w-]+)/g
Какое значение будет иметь переменная $a в результате работы программыmy $a=0; 'abcABC' =~ /(?:abc(?{ ++$a })|ABC(?{ $a+=10 }))(?!$)/;
(1) 0
(2) 1
(3) 10
(4) 11
Какие регулярные выражения захватят в $1 только подстроку 'ab+c 1-23' в строке 'xyz ab+c 1-23 uvw'?
(1) /(a[\w+]+\s+[\d-]+)/
(2) /\S+\s+(\w+\+\w+\s+\d-\d*)/
(3) /\S+\s+(\w+\+\w+\s+\d-\d*?)/
Что будет напечатано в результате работы программыmy $a='a'; my $re=qr/$a/; print 'OK' if 'a' =~ m'$re'; ?:
(1) OK
(2) ничего
Какое значение получит переменная $1 в результате работы программы{ 'abc' =~ /(\w+)/ } { '123' =~ /(\d+)/ }
(1) abc
(2) 123
(3) undefined
Строка в $_ состоит из нескольких натуральных чисел, разделенных запятыми, числа строго возрастают. Например: $_='11,12,30'. Какие регулярные выражения соответствуют каждой такой строке?
(1) /^(?:(\d+)(??{ $n < $1 ? ',|\Z' : '(?!)' })(?{ $n=$1 }))+$/
(2) /^(?:(\d+)(??{ $n < $1 ? ',|\Z' : '(?!)' })(?{ $n=$1 }))+\z/
(3) /^(?:(\d+)(??{ $n < $1 ? '$|,' : '(?!)' })(?{ $n=$+ }))+\z/
Какое значение получит переменная $1 в результате работы программыmy $re=qr/(?>(\d)+)\d/; '123' =~ $re; $re=qr/(\d+)/; '456' =~ //;
(1) 12
(2) 45
(3) undefined
Что будет напечатано в результате работы оператораprint join '-', split /\s+/, 'abc';
(1) a-b-c
(2) abc
(3) abc-
Будут ли возвраты в процессе работы оператора 'abc123' =~ /(?>[a123]+|\w+)/?:
(1) да
(2) нет
Что выйдет на печать в результате работы оператора 'abc123' =~ /\w*?(?=(\d+))(?{ print $1 })/?
(1) 3
(2) 123
(3) undefined
Надо у каждого слова в тексте удалить первый символ. Какие операторы делают это правильно?
(1) s/\b\w//g
(2) s/\b\w+?//g
(3) s/\w(\w+)\b/$1/g
(4) s/\w*(\w+)/$1/g
(5) s/\w(\w*)/$1/g
Какое значение получит переменная $1 в результате работы программы "abc\n123\n" =~ /(\w)$(?#).\z/ms?
(1) c
(2) undefined
(3) 3
Какое значение получит переменная $_ в результате работы программы $_="123!abc!"; s/(\w+)!/x/?
(1) xabc!
(2) xx
(3) x!x!
Какое значение получит переменная $_ в результате работы программы $_='aBc'; my $a='[a-z]+'; s/\L$a/!/g?
(1) !!!
(2) !Bc
(3) !B!
(4) a!c
В $_ дан текст:$_=<<EOD; Первый адрес:<a href="mailto:abc\@def.com">abc\@def.com</a>, второй адрес - <a href=http://www.intuit.ru>intuit.ru</a> EOD Какие операторы извлекают оба адреса из этого текста?
(1) /href="?(?:mailto:)?([^>"]+)[">]/g
(2) /href=.*?(?::)?([^>"]+)[">]/g
(3) /href=.*?(?:mailto:)?([^>"]+)["]/?>
Что напечатается в результате работы программыour $a; 'abcABC' =~ /(?{ local $a=0 })(?:abc(?{ ++$a })|ABC(?{ $a+=10 }))(?!$)(?{ print $a })/
(1) 0
(2) 1
(3) 10
(4) 11
В тексте надо захватить в $1 фрагмент от первых до третьих кавычек. Какой оператор делает это правильно?
(1) /"([^"]*"[^"]*)"/
(2) /"([^"]*"[^"]+)"/
(3) /"(.*".*)"/
(4) /"(.*".*)"/s
(5) /"(.|")"/s
Что будет напечатано в результате работы программыmy $a='a'; my $re=qr/$a/; print 'OK' if '$a' =~ /\$re/;
(1) OK
(2) ничего
Какое значение получит переменная $a в результате работы программыmy $a; 'abc' =~ /(\w+(\w))(?{ $a=$+ })/;
(1) c
(2) abc
(3) undefined
Какие операторы возвращают истину?
(1) '123' =~ /^(??{ 123 })$/
(2) '123' =~ /^(??{ '123' })$/
(3) '123' =~ /^(??{ 124-1 })$/
(4) '-123' =~ /^(??{ 1-124 })$/
Что будет напечатано в результате выполнения программыmy $a=$_=1; while ($a < 4 && /$a/o) { print $&; $_++; $a++; }
(1) 123
(2) 1
(3) 111
Что будет напечатано в результате работы программы$a='-'; for (0..1) { print split (/$a/o, 'a-b:c', 2); print '!'; $a=':'; }
(1) ab:c!ab:c!
(2) ab:c!a-bc!
(3) a-b:c!a-b:c!
Какой фрагмент строки будет захвачен в переменную $1 в операторе '!1a' =~ /((?>[!\d]+|\S+))/?
(1) !1
(2) a
(3) !1a
Какое значение получит переменная $1 в результате работы программы 'aBc1b23' =~ /a(\w)\w+(\1)/?
(1) пусто
(2) undefined
(3) b
(4) B
В тексте надо все цифры увеличить на 1, а 9 заменить на 0. Какие операторы делают это правильно?
(1) s/(\d)/++$1/ge
(2) s/(\d)/my $a=''.$1; ++$a/ge
(3) s/(\d)/$1 < 9 ? $1+1 : 0/ge
(4) s/(\d+)/$1 < 9 ? $1+1 : 0/ge
(5) s/(\d*)/$1 < 9 ? $1+1 : 0/ge
(6) s/(\d)/($1+1)%10/ge
Какое значение получит переменная $_ в результате работы программы $_='abc123'; s/(\d)/$1+100/?
(1) abc1+10023
(2) abc10123
(3) abc$1+10023
Какое значение получит переменная $1 в результате работы программы $_="123!abc!"; /\w+/; /(\w+)/g?
(1) abc
(2) 123
(3) undefined
Какое значение получит переменная $_ в результате работы программы $_='[a-z]+abcABC'; my $a='[a-z]+'; s/\Q$a\E.*[A-Z]/!/?
(1) !BC
(2) !
(3) [a-z]+abcABC
Адрес abc@intuit.ru зашифрован скриптом:$_=<<EOD; <script> a='\@'; e='abc'+a+'intuit.ru'; document.write('<a href=m'+'ailto:'+e+'><b>'+e+'</b></a>'); </script> EOD Какие операторы правильно печатают этот адрес?
(1) print "$1\@$2" if /\@[^=]+=.*?([^'"]+).[^'"]+.([^'"]+)/
(2) print "$1\@$2" if /\@[^=]+=.*?([^'"]+).+?[^'"]+.([^'"]+)/
(3) print "$1\@$2" if /\@[^=]+=.([^'"]+).[^'"]+.+([^'"]+)/
Какое значение примет переменная $n в результате работы программыmy $n; $_='abc ab abcd'; /(?<!\w)(\w+)(?{$n=$+ if !defined($n) || $n gt $+})(?!)/?
(1) a
(2) ab
(3) abc
Строка содержит полный путь и имя файла в Windows и ничего больше. Надо захватить в $1 весь путь без имени диска и имени файла. Какие операторы делают это правильно?
(1) /[^:]*:(.*\\)/
(2) /[^:]*?:(.*\\)/
(3) /[^:]*:(.*?\\)/
(4) /[^\\]+(.*?\\)/
(5) /[^\\]+(.*\\)/s
(6) /^[^\\]+(.*\\)/
Что будет напечатано в результате работы программыmy $re=qr/(\w+)c/; print $1 if 'abcabc' =~ /$re+/;
(1) ничего
(2) abc
(3) abcab
Что будет напечатано в результате работы программы$_='abc123def'; /\d+/; print substr $_, $+[0];
(1) abc
(2) 123
(3) def
Какие операторы возвращают истину?
(1) 'ABCD' =~ /^(??{ "\Uabc" })D$/
(2) 'ABCD' =~ /^(??{ "\QABC" })D$/
(3) /^(??{ "(?i)\lABC" })D$/
Что будет напечатано в результате выполнения программыmy $a=$b=1; while ($a < 4 && $b =~ /(??{ "$a" })/o) { print $&; $b++; $a++; }
(1) 123
(2) 1
(3) 111
Что будет напечатано в результате работы оператораprint join '-', split /\d/, 'a1b2c';
(1) a-b-c
(2) a-1-b-2-c
(3) a1b2c
Будет ли найдено совпадение в операторе 'abc' =~ /(?>\d+|\z)/?
(1) да
(2) нет
Какое значение получит переменная $1 в результате выполнения программы "abc\n123" =~ / ^(\w+?)(?(1)^\d+) /m?
(1) c
(2) abc
(3) undefined
(4) пустой фрагмент
В тексте по ошибке автора встречаются удвоения слов, например: "I write write a letter". Это надо исправить, чтобы получилось "I write a letter". Какие операторы делают это правильно?
(1) s/\b(\w+)\s+\1\b/$1/gi
(2) s/\b(\w+)\s+\1\b/$1/g
(3) s/\b(\w+)\s+\1\b/$1/i
(4) s/\b(\w+)(\s+)\1\b/$1$2/gi
(5) s/\b((\w+)\s+)\2\b/$1/gi
(6) s/\b((\w+)\s+)\1\b/$1/gi
Какое значение получит переменная $1 в результате работы программы "abc123" =~ /(123$|abc)/?
(1) abc
(2) 123
(3) undefined
Какое значение получит переменная $_ в результате работы программы $_="123"; s/(?<=\d)/!/g?
(1) 1!2!3!
(2) !1!2!3!
(3) !1!2!3
Какое значение получит переменная $_ в результате работы программы $_='abcABC'; my $re=qr'[A-Z]+'; s/$re/!/gi?
(1) !ABC
(2) !
(3) abc!
В переменной $_ находится HTML-страница. Надо проверить, есть ли у этой страницы часть head, и если есть, то есть ли внутри контейнера <head> </head> тег <base href="…">. Если он есть, то переменной $base надо присвоить этот URL из части head документа. Если в head нет тега base, то ничего делать не надо. Пример текста страницы:<html> <head> <title>Title</title> <base href="http://www.intuit.ru/download"> </head> … Какие операторы делают это корректно, учитывая разное оформление тегов веб-мастерами?
(1) $base=$1 if m#<head[^>]*>(?>(?!<base|</head).)+<base\s+href\s*=\s*['"]([^'">\s]+)#is
(2) $base=$1 if m#<head[^>]*>(?>(?!<base|</head).)+<base\s+href\s*=\s*['"]?(?:[^'">\s]+)#is
(3) $base=$1 if m#<head[^>]*>(?>(?!<base|</head).)+<base\s+href\s*=\s*['"]?([^'">\s]+)#is
Какое значение получит переменная $^R в результате работы программы' 'ab!abc!' =~ /(\w+)!(?(?{ $1 ne 'abc' })(\w+)|(?{ $1 eq 'ab' }))/
(1) пусто
(2) undefined
(3) 1
Какие регулярные выражения захватят в $1 подстроку 'ab?c', а в $2 - подстроку 'abc?' из строки '12?a ab?c abc?'?
(1) /([\w?]+)\s+(\S+)/
(2) (a[\w?]+\s+)(\S+)
(3) /([a-z]+[?\w]*)\s+(\S+)/
Что будет напечатано в результате работы программыmy $re=qr'(\w+)c'; print $1 if '(\w+)c' =~ /$re/;
(1) ничего
(2) (\w+)c
(3) (\w+)
Какое значение получит переменная $1 в результате работы программы$_='abc123def'; /(\w+)/; /(?>\d+)(\d*)/;
(1) abc123def
(2) 3
(3) пустое
Укажите относительный URI:
(1) 'ABC' =~ /^(??{ 'ABC\\Z' })/
(2) 'ABC' =~ /^(??{ 'ABC\\z' })/
(3) 'ABC' =~ /^(??{ 'ABC\$' })/
Что будет напечатано в результате выполнения программыmy $b='ab'; my $a='a'; while ($a ne 'd' && $b =~ /(?{ ++$a })$a/o) { print $&; }
(1) aa
(2) ab
(3) aaa
Что будет напечатано в результате работы оператораprint join '-', grep /^\d{2,}/, qw/a 1 b 22 c/;
(1) 1-22
(2) 22
(3) ничего не напечатается
Какой текст будет захвачен, соответственно, в переменную $1 и $2 следующим оператором: 'abcd' =~ /(\w*?)(\w+)/?
(1) a и bcd
(2) abc и d
(3) ab и cd
Какое значение получит переменная $1 в результате выполнения программы "abc\n123" =~ /(\S*)$/?
(1) abc
(2) 123
(3) пустой фрагмент
(4) undefined
Какое значение получит массив @a в результате работы программы my @a="abc\n123" =~ /\w/g?
(1) (a)
(2) () или пусто
(3) (a, b, c, 1, 2, 3)
Какое значение получит переменная $1 в результате работы программы "123abc" =~ /(\d)+(\d+)(?(?{ $1 < $2 })abc)/?
(1) 1
(2) 2
(3) undefined
Какое значение получит переменная $1 в результате работы программы my @a = "123" =~ /\G(?=\d)(\d)/?
(1) 1
(2) 2
(3) 3
Какое значение получит переменная $_ в результате работы программы $_='abcABCdefDEF'; my $re=qr'[A-Z]+'; s/${re}\L[A-Z]+/!/?
(1) abc!defDEF
(2) abc!DEF
(3) abcABCdefDEF
Дан текст:$_=<<EOD; <a href='javascript:void(window.open("http://intuit.ru/book.html","","width=480,height=320"))'>Book</a><br> <a href="http://intuit.ru/index.html">index</a> EOD Какие операторы правильно печатают обе ссылки?
(1) print join "\n", /<a\s+href=.*(http://[^"]+)/g
(2) print join "\n", m/<a\s+href=.*(http://[^"]+)/g
(3) print join "\n", m!<a\s+href=.*(http://[^"]+)!g
Какое значение примет переменная $2 в результате работы программы'ab!abc!a!' =~ /(\w+)!(\w+)!(?(?{ $1 lt $2 })(?!\w))/
(1) a
(2) b
(3) ab
Какие операторы удаляют все пробельные символы только в конце каждой строки текста?
(1) s/ +$//m
(2) s/\s*//m
(3) s/\s+\Z//g
(4) s/\s*$//gms
(5) s/\s+?$//g
(6) s/\s*?$//g
(7) s/\s*?//g
Какое значение получит переменная $1 в результате выполнения программы "abc\n123" =~ /^(\w+)(?=\Z)/m?
(1) abc
(2) 123
(3) undefined
Какое значение получит переменная $1 в результате выполнения программы "abc\n123" =~ /(?m)(\S*)$/?
(1) abc
(2) 123
(3) пустой фрагмент
(4) undefined
Какое значение получит переменная $_ в результате работы программы $_='abcABCdefDEF'; my $re=qr'[A-Z]+'; s/${re}[A-Z]+/!/?
(1) abc!defDEF
(2) abc!DEF
(3) abcABCdefDEF
Что выйдет на печать в результате работы программы $_="123!abc!"; pos($_)=4; print /\A(\w+)!/g?
(1) 123
(2) abc
(3) ничего не напечатается
Какое значение получит переменная $_ в результате работы программы $_="123!abc!"; s/(\w+)!/x/g?
(1) xabc!
(2) xx
(3) x!x!
Какое значение получит переменная $1 в результате работы программы $_="123!abc!"; /\w+/gc; /(\w+)/g?
(1) abc
(2) 123
(3) undefined
Какое значение получит переменная $_ в результате работы программы $_="123"; s/(?!\d)/!/g?
(1) 123
(2) 123!
(3) !!!