Регулярные выражения Perl и их применение - ответы
Количество вопросов - 258
$_=<<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Какие операторы правильно печатают обе ссылки?
my $a=10; 'abc123' =~ /((\w)+(?{ $a=$+ }))/;
my $n; $_='abc ab abcd'; /(?<!\w)(\w+)(?{$n=$+ if !defined($n) || $n lt $+})(?!)/?
my $a='a';my $re=qr/$a/i;$a='A';print 'OK' if 'A' =~ $re;
my $a='[a-z]';my $re=qr'$a';print 'OK' if 'A' =~ /$re/;
$_=<<EOD;<script>a='\@';e='abc'+a+'intuit.ru';document.write('<a href=m'+'ailto:'+e+'><b>'+e+'</b></a>');</script>EODКакие операторы правильно печатают этот адрес?
my $a; 'abc' =~ /(\w+(\w))(?{ $a=$^N })/;
$_=<<EOD;Первый адрес:<a href="mailto:abc\@def.com">abc\@def.com</a>,второй адрес - <a href=http://www.intuit.ru>intuit.ru</a>EODКакие операторы извлекают оба адреса из этого текста?
<html><head><title>Title</title><base href="http://www.intuit.ru/download"></head>…Какие операторы делают это корректно, учитывая разное оформление тегов веб-мастерами?
$_=<<EOD;Первый адрес:<a href='mailto:abc\@def.com'>abc\@def.com</a>,второй адрес - <a href='mailto:ab.c\@def.com'>ab.c\@def.com</a>третий адрес - <ahref = " mailto: a+b\@de-f.co.uk " >a-b\@def.ijk.co.uk</a>EODКакие операторы извлекают все 3 адреса электронной почты из этого текста?
$_=<<EOD;Первый адрес:<a href="mailto:abc\@def.com">abc\@def.com</a>,второй адрес - <a href=http://www.intuit.ru>intuit.ru</a>EODКакие операторы извлекают оба адреса из этого текста?
$_=<<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Какие операторы правильно печатают обе ссылки?
'abcABC' =~ /(?:([a-z])(?{ $^N })|([A-Z])(?{ $^N }))(?(?{ $1 })ABC)\Z/;
my $a=0; 'abcABC' =~ /(?:abc(?{ ++$a })|ABC(?{ ++$a }))/
our $a; 'abcABC' =~ /(?{ local $a=0 })(?:abc(?{ ++$a })|ABC(?{ $a+=10 }))(?!$)(?{ print $a })/
my $n;$_='abc ab abcd';/(?<!\w)((?>\w+))(?{$n=$+ if !defined($n) || $n gt $+})(?!)/?
'ab!abc!' =~ /(\w+)!(?(?{ $1 eq 'abc' })(\w+)|(?{ $1 ne 'ab' }))/
'ab!abc!a!' =~ /(\w+)!(\w+)!(?(?{ $1 lt $2 })(?!\w))/
my $a='a';my $re=qr/$a/i;$a='A';print 'OK' if 'a' =~ $re;
my $a='[a-z]';my $re=qr/$a/;print 'OK' if 'A' =~ /$re/;
my $a='a';my $re=qr/$a/;print 'OK' if 'a' =~ /$re/;
my $a='a';my $re=qr/\$a/;print 'OK' if '$a' =~ /$re/;
my $re=qr/(\w+)\w/; print $1 if 'abcabc' =~ /$re+/;
my $a=10; 'abc123' =~ /((\w)+)(?{ $a=$^N})/;
my $a; 'abc' =~ /(\w)+(?{ $a=$+ })
$_='abc123def';/\d+/;print substr $_, $-[0], $+[0] - $-[0];
$_='abc123def';/(\w+)/;/(?>\d+)(\d+)/;
'abc123def' =~ /abc(??{ '(\d+)' })(def)/;
'abc' =~ /(?>(\w+))\w/;'123' =~ //;
my $a='';my $re=qr/(\d)+/;'123' =~ $re;'456' =~ /$a/;
my $re=qr/(\d)+/;'123' =~ $re;$re=qr/(\d+)/
my $a=$_=1;while ($a < 4 && /$a/o) { print $&; $_++; $a++; }
my ($a,$b)=('a','a');while ($a ne 'd' && $b =~ /(??{ "$a" })/o) { print $&; $a++; $b++; }
use re 'eval';my $a=$b=1;while ($a < 4 && $b =~ /(?{ ++$a })$a/) { print $&; $b++; }
$a='-';for (0..1) { print split (/$a/o, 'a-b:c', 2); print '!'; $a=':'; }
my $re=qr/(\d)+/;'123' =~ $re;'456' =~ //;
$_=<<EOD;Первый адрес:<a href='mailto:abc\@def.com'>abc\@def.com</a>,второй адрес - <a href='mailto:ab.c\@def.com'>ab.c\@def.com</a>третий адрес - <ahref = " mailto: a+b\@de-f.co.uk " >a-b\@def.ijk.co.uk</a>EODКакие операторы извлекают все 3 адреса электронной почты из этого текста?
$_=<<EOD;Первый адрес:<a href="mailto:abc\@def.com">abc\@def.com</a>,второй адрес - <a href=http://www.intuit.ru>intuit.ru</a>EODКакие операторы извлекают оба адреса из этого текста?
my $re=qr/(?>(\d)+)\d/;'123' =~ $re;$re=qr/(\d+)/;'456' =~ //;
my $a='a';my $re=qr/$a/;$a='A';print 'OK' if 'A' =~ /$re/i;
my $a='a';$_='ab';while ($a ne 'd' && /$a/o) { print $&; $a++; }
$_='abc123def';/(\w+)/;/\d+(\d+)/;
$a='-';for (0..1) { print split /$a/, 'a-b:c' . "\n"; $a=':'; }
$_=<<EOD;<script>a='\@';e='abc'+a+'intuit.ru';document.write('<a href=m'+'ailto:'+e+'><b>'+e+'</b></a>');</script>EODКакие операторы правильно печатают этот адрес?
<html><head><title>Title</title><base href="http://www.intuit.ru/download"></head>…Какие операторы делают это корректно, учитывая разное оформление тегов веб-мастерами?
my $a=1; 'abcABC' =~ /abc(?(?{ $a })ABC)/;
my $a=0; 'abcABC' =~ /(?:abc(?{ ++$a })|ABC(?{ ++$a }))(?!\w)/;
our $a; 'abcABC' =~ /(?{ local $a=0 })(?:abc(?{ ++$a })|ABC(?{ $a+=10 }))(?{ print $a })/
'ab!abc!' =~ /(\w+)!(?(?{ $1 eq 'abc' })(\w+)|(?{ $1 eq 'ab' }))/
'ab!abc!a!' =~ /(?:(\w+)!){2}(?(?{ $1 gt $2 })$)/?
my $a='[a-z]';my $re=qr/$a/i;print 'OK' if 'A' =~ /$re/
my $a='a';my $re=qr/$a/;print 'OK' if '$a' =~ /\$re/;
my $re=qr/(ab)c/; print $1.$2 if 'abcabc' =~ /$re+$re+/;
my $re=qr'(\w+)c'; print $1 if 'abcabc' =~ /$re+/;
my $re=qr/(\d)+/;'123' =~ $re;'456' =~ //;
my $a='';my $re=qr/(\d)+/;'123' =~ $re;$re=qr/(\d+)/;'456' =~ /$a/;
my $a=$_='a';while ($a ne 'd' && /$a/o) { print $&; $_++; $a++; }
my $a='a';$b='ab';while ($a ne 'd' && $b =~ /(??{ "$a" })/o) { print $&; $a++; }
my $b='ab';my $a='a';while ($a ne 'd' && $b =~ /(?{ ++$a })$a/o) { print $&; }
$a='-';for (0..1) { print split /$a/o, 'a-b:c' . "!"; $a=':'; }
my $a='';'abc' =~ /(\w+)/;'123' =~ /$a/;
our $a; 'abcABC' =~ /(?{ local $a=0 })(?:abc(?{ ++$a })|ABC(?{ $a+=10 }))(?!\w)(?{ print $a })/
<html><head><title>Title</title><base href="http://www.intuit.ru/download"></head>…Какие операторы делают это корректно, учитывая разное оформление тегов веб-мастерами?
my $n;$_='abc ab abcd';/(?<!\w)(\w+)(?{$n=$+ if !defined($n) || $n gt $+})(?!)/?
my $re=qr/(\w+)c/; print $1 if 'abcabc' =~ m'$re+';
{ 'abc' =~ /(\w+)/ }{ '123' =~ /(\d+)/ }
my $a; 'abc' =~ /(\w+(\w))(?{ $a=$+ })/;
$_='abc123def';/(\w+)/;/(?>\d+)(\d*)/;
'abc123def' =~ /(abc(??{ '(\d+)' })def)/;
my $a=0; 'abcABC' =~ /(?:abc(?{ ++$a })|ABC(?{ $a+=10 }))(?!$)/;
use re 'eval';my $a=$b=1;while ($a < 4 && $b =~ /(?{ ++$a })$a/o) { print $&; $b++; }
$_=<<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Какие операторы правильно печатают обе ссылки?
' 'ab!abc!' =~ /(\w+)!(?(?{ $1 ne 'abc' })(\w+)|(?{ $1 eq 'ab' }))/
'abc123def' =~ /(abc)(??{ '(\d+)' })/;
my $a=$b=1;while ($a < 4 && $b =~ /(??{ "$a" })/o) { print $&; $b++; $a++; }
$_=<<EOD;<script>a='\@';e='abc'+a+'intuit.ru';document.write('<a href=m'+'ailto:'+e+'><b>'+e+'</b></a>');</script>EODКакие операторы правильно печатают этот адрес?
my $a='a';my $re=qr/$a/;print 'OK' if '$a' =~ /$re/;
'ab!abc!a!' =~ /(\w+)!(\w+)!(?(?{ $1 gt $2 })$)/
my $a=10; 'abc123' =~ /((\w)+)(?{ $a=$+ })/;
my $a='a';my $re=qr/$a/;print 'OK' if 'a' =~ m'$re';?:
my $a='(?i)[a-z]';my $re=qr/$a/;print 'OK' if 'A' =~ /$re/;
$_=<<EOD;Первый адрес:<a href='mailto:abc\@def.com'>abc\@def.com</a>,второй адрес - <a href='mailto:ab.c\@def.com'>ab.c\@def.com</a>третий адрес - <ahref = " mailto: a+b\@de-f.co.uk " >a-b\@def.ijk.co.uk</a>EODКакие операторы извлекают все 3 адреса электронной почты из этого текста?
'abcABC' =~ /(?:([a-z])(?{ $+ })|([A-Z])(?{ $+ }))\Z/?
my $re=qr/(\w+)c/; print $1 if 'abcabc' =~ /$re+/;