Регулярные выраженияв Perl 5.14<br />Black Perl, 2011<br />
Модификатор /r<br />
5.12<br />my@in = ( qw(alpha beta gamma) );<br />my@out = map { s/a/Z/g} @in;<br />@in = ( 'ZlphZ', 'betZ', 'gZmmZ' );<br ...
5.14<br />my@in = ( qw(alpha beta gamma) );<br />my@out = map { s/a/Z/gr} @in;<br />@in = ( 'alpha', 'beta', 'gamma' );<br...
/r<br />Работает с копией, а не ссылкой<br />Возвращает результат замены, а не количество совпадений<br />
5.12<br />my$in = 'Loremipsum';<br />my$out = $in =~ tr/a-z/A-Z/;<br />$in = 'LOREM IPSUM';<br />$out = 9;<br />
5.14<br />my$in = 'Loremipsum';<br />my$out = $in =~ tr/a-z/A-Z/r;<br />$in = 'Loremipsum';<br />$out = 'LOREM IPSUM';<br />
Модификаторы по умолчанию<br />
usere '/sx';<br />nore '/s';<br />use re '/i';<br />use re '/ix';<br />usere qw(/i/x);<br />
{<br />usere '/i';<br />say'Black Perl' =~ qr/perl/ ? 1 : 0;<br />    outside();<br />}<br />sub outside {<br />say'Black ...
usere '/i';<br />say'Black Perl' =~ qr/perl/ ? 1 : 0;<br />say'Black Perl' =~ qr/(?^:p)erl/ ? 1 : 0;<br />1<br />0<br />
use re '/flags';<br />Используются флаги, применяемыек выражению, а не оператору(нельзя /g, /c , /r)<br />Ограничено лекси...
Преобразование в строку<br />
5.12<br />my$black = qr/Black/x;<br />my $perl  = qr/Perl/;<br />my $any   = qr/$black|$perl/;<br />say $any;<br />(?-xism...
5.14<br />my$black = qr/Black/x;<br />my $perl  = qr/Perl/;<br />my $any   = qr/$black|$perl/;<br />say $any;<br />(?^:(?^...
5.12	(?-xism:(?x-ism:Black)|(?-xism:Perl))<br />5.14(?-xismudal:. . .)<br />5.14	(?^:(?^x:Black)|(?^:Perl))<br />
Преобразование в строку<br />Забудьте<br />Всё и так было хорошо, а стало ещё лучше<br />
Модификаторы /a, /d, /l и/u <br />
/l			use locale;<br />/u			use feature 'unicode_strings';<br />/a/u, кроме классов d, w, s...<br />/d		no locale;		no feat...
use feature 'unicode_strings';<br />nofeature 'unicode_strings';<br />
Символьный класс d<br />4௧੭٣૪<br />/a, /aa<br />
say ('Z Я' =~ s/w/_/urg);<br />say('Z Я' =~ s/w/_/arg);<br />_ _<br />_ Я<br />
Спасибо<br />Олег Алистратов<br />zero@cpan.org<br />
Upcoming SlideShare
Loading in …5
×

Regular expressions in Perl 5.14

1,225 views
1,178 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,225
On SlideShare
0
From Embeds
0
Number of Embeds
53
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Regular expressions in Perl 5.14

  1. 1. Регулярные выраженияв Perl 5.14<br />Black Perl, 2011<br />
  2. 2. Модификатор /r<br />
  3. 3. 5.12<br />my@in = ( qw(alpha beta gamma) );<br />my@out = map { s/a/Z/g} @in;<br />@in = ( 'ZlphZ', 'betZ', 'gZmmZ' );<br />@out = ( 2, 1, 2 );<br />
  4. 4. 5.14<br />my@in = ( qw(alpha beta gamma) );<br />my@out = map { s/a/Z/gr} @in;<br />@in = ( 'alpha', 'beta', 'gamma' );<br />@out = ( 'ZlphZ', 'betZ', 'gZmmZ' );<br />
  5. 5. /r<br />Работает с копией, а не ссылкой<br />Возвращает результат замены, а не количество совпадений<br />
  6. 6. 5.12<br />my$in = 'Loremipsum';<br />my$out = $in =~ tr/a-z/A-Z/;<br />$in = 'LOREM IPSUM';<br />$out = 9;<br />
  7. 7. 5.14<br />my$in = 'Loremipsum';<br />my$out = $in =~ tr/a-z/A-Z/r;<br />$in = 'Loremipsum';<br />$out = 'LOREM IPSUM';<br />
  8. 8. Модификаторы по умолчанию<br />
  9. 9. usere '/sx';<br />nore '/s';<br />use re '/i';<br />use re '/ix';<br />usere qw(/i/x);<br />
  10. 10. {<br />usere '/i';<br />say'Black Perl' =~ qr/perl/ ? 1 : 0;<br /> outside();<br />}<br />sub outside {<br />say'Black Perl' =~ qr/perl/ ? 1 : 0;<br />}<br />1<br />0<br />
  11. 11. usere '/i';<br />say'Black Perl' =~ qr/perl/ ? 1 : 0;<br />say'Black Perl' =~ qr/(?^:p)erl/ ? 1 : 0;<br />1<br />0<br />
  12. 12. use re '/flags';<br />Используются флаги, применяемыек выражению, а не оператору(нельзя /g, /c , /r)<br />Ограничено лексической областью видимости<br />Можно указывать несколько флагов: /ixs<br />Можно локально отменять в подвыражении:(?^:)<br />
  13. 13. Преобразование в строку<br />
  14. 14. 5.12<br />my$black = qr/Black/x;<br />my $perl = qr/Perl/;<br />my $any = qr/$black|$perl/;<br />say $any;<br />(?-xism:(?x-ism:Black)|(?-xism:Perl))<br />
  15. 15. 5.14<br />my$black = qr/Black/x;<br />my $perl = qr/Perl/;<br />my $any = qr/$black|$perl/;<br />say $any;<br />(?^:(?^x:Black)|(?^:Perl))<br />
  16. 16. 5.12 (?-xism:(?x-ism:Black)|(?-xism:Perl))<br />5.14(?-xismudal:. . .)<br />5.14 (?^:(?^x:Black)|(?^:Perl))<br />
  17. 17. Преобразование в строку<br />Забудьте<br />Всё и так было хорошо, а стало ещё лучше<br />
  18. 18. Модификаторы /a, /d, /l и/u <br />
  19. 19. /l use locale;<br />/u use feature 'unicode_strings';<br />/a/u, кроме классов d, w, s...<br />/d no locale; no feature 'unicode_strings';<br />
  20. 20. use feature 'unicode_strings';<br />nofeature 'unicode_strings';<br />
  21. 21. Символьный класс d<br />4௧੭٣૪<br />/a, /aa<br />
  22. 22. say ('Z Я' =~ s/w/_/urg);<br />say('Z Я' =~ s/w/_/arg);<br />_ _<br />_ Я<br />
  23. 23. Спасибо<br />Олег Алистратов<br />zero@cpan.org<br />

×