Top Banner
Регулярные выражения в Perl 5.14 Black Perl, 2011
23

Regular expressions in Perl 5.14

Dec 25, 2014

Download

Technology

Oleg Alistratov

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Regular expressions in Perl 5.14

Регулярные выраженияв Perl 5.14

Black Perl, 2011

Page 2: Regular expressions in Perl 5.14

Модификатор /r

Page 3: Regular expressions in Perl 5.14

5.12

my @in = ( qw(alpha beta gamma) );my @out = map { s/a/Z/g } @in;

@in = ( 'ZlphZ', 'betZ', 'gZmmZ' );@out = ( 2, 1, 2 );

Page 4: Regular expressions in Perl 5.14

5.14

my @in = ( qw(alpha beta gamma) );my @out = map { s/a/Z/gr } @in;

@in = ( 'alpha', 'beta', 'gamma' );@out = ( 'ZlphZ', 'betZ', 'gZmmZ' );

Page 5: Regular expressions in Perl 5.14

/r

• Работает с копией, а не ссылкой• Возвращает результат замены, а не

количество совпадений

Page 6: Regular expressions in Perl 5.14

5.12

my $in = 'Lorem ipsum';my $out = $in =~ tr/a-z/A-Z/;

$in = 'LOREM IPSUM';$out = 9;

Page 7: Regular expressions in Perl 5.14

5.14

my $in = 'Lorem ipsum';my $out = $in =~ tr/a-z/A-Z/r;

$in = 'Lorem ipsum';$out = 'LOREM IPSUM';

Page 8: Regular expressions in Perl 5.14

Модификаторы по умолчанию

Page 9: Regular expressions in Perl 5.14

use re '/sx';no re '/s';use re '/i';

use re '/ix';use re qw(/i /x);

Page 10: Regular expressions in Perl 5.14

{ use re '/i'; say 'Black Perl' =~ qr/perl/ ? 1 : 0; outside();}

sub outside { say 'Black Perl' =~ qr/perl/ ? 1 : 0;}

10

Page 11: Regular expressions in Perl 5.14

use re '/i';say 'Black Perl' =~ qr/perl/ ? 1 : 0;say 'Black Perl' =~ qr/(?^:p)erl/ ? 1 : 0;

10

Page 12: Regular expressions in Perl 5.14

use re '/flags';

• Используются флаги, применяемыек выражению, а не оператору(нельзя /g, /c , /r)

• Ограничено лексической областью видимости

• Можно указывать несколько флагов: /ixs• Можно локально отменять в

подвыражении: (?^:)

Page 13: Regular expressions in Perl 5.14

Преобразование в строку

Page 14: Regular expressions in Perl 5.14

5.12

my $black = qr/B l a c k/x;my $perl = qr/Perl/;

my $any = qr/$black|$perl/;say $any;

(?-xism:(?x-ism:B l a c k)|(?-xism:Perl))

Page 15: Regular expressions in Perl 5.14

5.14

my $black = qr/B l a c k/x;my $perl = qr/Perl/;

my $any = qr/$black|$perl/;say $any;

(?^:(?^x:B l a c k)|(?^:Perl))

Page 16: Regular expressions in Perl 5.14

5.12 (?-xism:(?x-ism:B l a c k)|(?-xism:Perl))

5.14 (?-xismudal: . . .)

5.14 (?^:(?^x:B l a c k)|(?^:Perl))

Page 17: Regular expressions in Perl 5.14

Преобразование в строку

• Забудьте• Всё и так было хорошо, а стало ещё лучше

Page 18: Regular expressions in Perl 5.14

Модификаторы /a, /d, /l и /u

Page 19: Regular expressions in Perl 5.14

/l use locale;

/u use feature 'unicode_strings';

/a /u, кроме классов \d, \w, \s...

/d no locale;no feature 'unicode_strings';

Page 20: Regular expressions in Perl 5.14

use feature 'unicode_strings';

no feature 'unicode_strings';

Page 21: Regular expressions in Perl 5.14

Символьный класс \d

4 ௧ ੭ ٣ ૪

/a, /aa

Page 22: Regular expressions in Perl 5.14

say ('Z Я' =~ s/\w/_/urg);say ('Z Я' =~ s/\w/_/arg);

_ __ Я

Page 23: Regular expressions in Perl 5.14

Спасибо

Олег Алистратов[email protected]